我有以下情况:我从登录屏幕开始(我想要没有工具栏或标签栏。)用户登录后,我想显示一个标签栏,其中有多个选项,每个选项都可以钻取进入他们自己的视图层次结构。因此,每个选项卡都必须具有导航控制器功能。
因此,最直接的解决方案是使用标签栏控制器,然后让每个部分(总共3个)拥有自己的导航控制器。但问题是,我希望整个应用程序中的每个页面都有一个注销按钮,这将使它们返回到第一个屏幕。
我可以从每个页面的注销按钮回到开头,但这似乎是错误的。我也可以将标签栏控制器放在导航控制器内;但是我听说导航控制器应该始终位于标签栏控制器内,而不是相反。
任何建议
答案 0 :(得分:2)
如果每个UINavigationController的根视图控制器都是登录屏幕,为什么不为每个适当的视图分配一个注销按钮self.navigationItem.rightBarButtonItem
。单击后,它可以调用您的注销功能,然后popToRootViewControllerAnimated:
将您带回登录屏幕。
您可以在任何想要的视图中使用setNavigationBarHidden:animated:
,也可以不希望显示导航栏。
答案 1 :(得分:1)
出示您的"登录"屏幕作为导航控制器的标签栏控制器顶部的模态视图控制器。无论何时从应用程序中的任何位置注销,您都会显示一个新的模态登录视图,然后可以在其他控制器不再可见时重置其状态。登录时,您将关闭模态并显示标签栏控制器及其包含的内容。