我目前正在使用ECSlidingViewController示例,在打开我当前所在的视图时出现了一个小错误。
看起来这些视图堆叠在一起。当我再次打开视图时,我需要一些方法来杀死这个类(视图)。
以下是单击-UItableView后会发生的情况
NSLog(@"Channel 1 Loading");
tableViewCellLoading = true;
[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
CGRect frame = self.slidingViewController.topViewController.view.frame;
self.slidingViewController.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"firstChannel"];
self.slidingViewController.topViewController.view.frame = frame;
[self.slidingViewController resetTopView];
[tableView deselectRowAtIndexPath:indexPath animated:YES]; }];抽屉应用程序的外观
http://gyazo.com/f811283fadbad5b50ee4d594b6798f18
发布于 2014-07-28 15:48:57
我知道这个问题已经有一段时间了.但对于其他正在寻找的人来说,这里有一个答案。
以下代码来自我的"MenuController.m“文件。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.slidingViewController.topViewController.view.layer.transform = CATransform3DMakeScale(1, 1, 1);
UINavigationController *currentNav = (UINavigationController *)self.slidingViewController.topViewController;
UIViewController *theControllerYouWant = [currentNav.viewControllers objectAtIndex:([currentNav.viewControllers count]-1)];
NSString *CurrentSelectedCViewController = NSStringFromClass(theControllerYouWant.class);
if (indexPath.row == 1 && ![CurrentSelectedCViewController isEqualToString:@"PeopleTableViewController"]) {
[(UINavigationController *)self.slidingViewController.topViewController setViewControllers: [NSArray arrayWithObject: [self.storyboard instantiateViewControllerWithIdentifier:@"PeopleView"]]];
} else if (indexPath.row == 2 && ![CurrentSelectedCViewController isEqualToString:@"CompanyPickerController"]) {
[(UINavigationController *)self.slidingViewController.topViewController setViewControllers: [NSArray arrayWithObject: [self.storyboard instantiateViewControllerWithIdentifier:@"CompanyView"]]];
}
[self.slidingViewController resetTopViewAnimated:YES];
}基本解释是这样的:
https://stackoverflow.com/questions/18907322
复制相似问题