【问题标题】:Creating a logout button on iPhone app?在 iPhone 应用程序上创建注销按钮?
【发布时间】: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


【解决方案1】:

当我删除我的第一个 UINavigationController(登录屏幕之前的那个)并将上面的第一行更改为:[self dismissModalViewControllerAnimated:YES]; 时,它可以工作......但前提是我将其设为模态转场。最简单的解决方案。不知道为什么我原来的问题是,但我至少能够以这种方式解决它!

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2015-10-18
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多