【发布时间】:2012-12-30 20:50:42
【问题描述】:
我有一个使用故事板的应用程序。布局是:导航控制器 > 登录视图控制器 > 选项卡栏控制器,每个选项卡都有一个导航控制器指向该选项卡的 UIViewController。我正在尝试创建一个注销按钮,该按钮将删除 TabBarController 并返回到登录视图控制器。我的代码如下:
// In log out function
[self.tabBarController dismissViewControllerAnimated:YES completion:nil];
[self performSelector:@selector(patchSelector) withObject:nil afterDelay:0.3];
-(void)patchSelector{
[self.tabBarController.navigationController popToRootViewControllerAnimated:YES];
}
我不断收到以下错误:
*** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'presentedViewController for controller is itself on dismiss for
我尝试阅读以下内容:
No visible interface for dismissModalViewControllerAnimated:completion
http://www.touchthatfruit.com/viewwillappear-and-viewdidappear-not-being-ca
UITabbarController dismiss modal UINavigationController
但是,以上都没有帮助解决我遇到的错误。我在这有什么遗漏吗?该错误似乎表明当前的 vc 正在清理中。
【问题讨论】:
-
仅供参考,如果它解决了您的问题,您应该发布您的 EDIT - SOLVED 作为答案。
-
更好的解决方案是使用 unwind segue。然后,您可以在您的登录视图中创建一个名为“注销”或其他内容的展开 segue 操作。这将弹回到这个控制器,然后运行这个动作。
-
请不要将 SOLVED 放在问题标题中。如果您找到了解决方案,则应将其作为详细答案发布。将答案标记为已接受表示已解决。
-
我已经这样做了。我还不能将其标记为已解决。请阅读下面的帖子。
-
刚刚也从问题中删除了它,但它已经放在下面了,谢谢。
标签: iphone objective-c ios ios6 nsuserdefaults