【发布时间】:2015-07-23 18:15:09
【问题描述】:
我有一个这样的 UICollectionView:
在每个单元格上,我添加了一个按钮。当我单击该按钮时,它将推送到另一个视图控制器。它工作正常。但是当我尝试同时单击 2 按钮时(例如:单元格 1 和单元格 7)。它调用了两次“推”。我收到警告:
嵌套推送动画可能导致导航栏损坏。 在意外状态下完成导航转换。导航栏 子视图树可能会损坏。
这是我的代码:
AppDelegate.m
+ (AppDelegate *)shareInstance{
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
- (UIViewController *)currentVisibleController{
id rootController = self.window.rootViewController;
if ([rootController isKindOfClass:[UINavigationController class]]) {
UINavigationController *navigationController = (UINavigationController *)rootController;
return navigationController.topViewController;
}
if ([rootController isKindOfClass:[UITabBarController class]]) {
UITabBarController *tabbarController = (UITabBarController *)rootController;
id topViewController = [tabbarController.viewControllers objectAtIndex:tabbarController.selectedIndex];
if ([topViewController isKindOfClass:[UINavigationController class]]) {
UINavigationController *navi = (UINavigationController *)topViewController;
return navi.topViewController;
}
return topViewController;
}
return self.window.rootViewController;
}
当我按下一个单元格时:
CustomCell.m
- (IBAction)pressOnCell:(id)sender {
SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:NSStringFromClass([SecondViewController class]) bundle:nil];
[[AppDelegate shareInstance].currentVisibleController.navigationController pushViewController:secondViewController animated:YES];
}
【问题讨论】:
标签: ios objective-c uinavigationcontroller tabbar pushviewcontroller