【问题标题】:How to deal with a navigation controller inside a tab bar controller?如何处理标签栏控制器内的导航控制器?
【发布时间】:2012-05-30 01:39:48
【问题描述】:

我有以下情况:我从一个登录屏幕开始(我希望它没有工具栏或标签栏。)用户登录后,我想显示一个标签栏,其中包含多个选项,每个选项都可以钻取向下进入他们自己的视图层次结构。因此,这些选项卡中的每一个都必须具有导航控制器功能。

因此,最直接的解决方案是拥有一个标签栏控制器,然后让每个部分(总共 3 个)拥有自己的导航控制器。但是,问题是我希望整个应用程序中的每个页面都有一个注销按钮,可以将它们带回第一个屏幕。

我可以将每个页面的注销按钮都从头切换到开头,但这似乎是错误的。我还可以将标签栏控制器放在导航控制器中;但是我听说导航控制器应该始终在标签栏控制器内,而不是相反。

任何建议

【问题讨论】:

    标签: objective-c ios xcode


    【解决方案1】:

    如果每个 UINavigationController 的根视图控制器是登录屏幕,为什么不为每个适当的视图分配一个注销按钮给 self.navigationItem.rightBarButtonItem。点击后会调用你的注销函数,然后popToRootViewControllerAnimated:带你回到登录界面。

    您可以在任何您希望或不希望显示导航栏的视图中使用setNavigationBarHidden:animated:

    【讨论】:

      【解决方案2】:

      将您的“登录”屏幕作为模式视图控制器显示在导航控制器的标签栏控制器之上。每当您从应用程序中的任何位置注销时,您都会呈现一个新的模式登录视图,然后可以在其他控制器不再可见时重置它们的状态。登录时,您关闭模式并显示标签栏控制器及其包含的任何内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-23
        相关资源
        最近更新 更多