在iPhone应用程序上创建注销按钮?

时间:2012-12-30 20:50:43

标签: iphone objective-c ios ios6 nsuserdefaults

我有一个使用故事板的应用程序。布局是:导航控制器>登录视图控制器>选项卡栏控制器和每个选项卡都有一个Nav控制器,指向该选项卡的UIViewController。我正在尝试创建一个注销按钮,该按钮将删除TabBarController并返回到Login View Controller。我的代码如下:

// 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正在被清理之中。

1 个答案:

答案 0 :(得分:0)

当我删除我的第一个UINavigationController(登录屏幕之前的那个)并且我将上面的第一行改为:[self dismissModalViewControllerAnimated:YES];时,它可以工作......但是只有当我把它变成模态segue时才会这样。最简单的解决方案不知道为什么我的原始问题是,但我能够以这种方式解决它至少!