ios最佳实践 - 导航和标签控制器以及推/弹

时间:2011-11-22 00:28:57

标签: iphone ios uinavigationcontroller

我的问题:

我的应用需要用户登录,因此我显示的第一个视图是登录视图。如果我们已登录,则会显示应用程序视图,这是一个标签栏控制器。其中一个选项卡是帐户信息+注销。在退出时,我想返回登录屏幕。

我的解决方案:

根视图是一个导航控制器,它保存主视图。主要观点是透明的,只是说你没有登录?将帐户屏幕推入堆栈。如果已登录,请将选项卡控制器视图推入堆栈。选项卡控制器中的每个选项卡都是导航控制器。单击帐户选项卡会将帐户视图上的帐户视图推送到堆栈。帐户视图有一个注销按钮,弹出2个视图(但不起作用):

 // Go to main view (2 views up) to show default login screen (as we won't be logged in anymore)
    UINavigationController *navController = self.navigationController;
    [navController popViewControllerAnimated:NO];
    [navController popViewControllerAnimated:YES];

我认为问题是:

我在顶层的导航控制器与标签控制器中的低级导航控制器不同。

我的问题似乎相当典型,但我的解决方案似乎非常笨重。这不是最好的方法!有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情?这似乎令人费解,但让我们试试吧。

[self.navigationController popViewControllerAnimated: NO];
[self.tabBarController.navigationController popViewControllerAnimated: YES];