【问题标题】:UITabBarControllers and UINavigationControllersUITabBarControllers 和 UINavigationControllers
【发布时间】:2011-09-27 15:37:35
【问题描述】:

问题

我有一个带有 UITabBarController 和四个不同选项卡的应用程序。其中三个选项卡是表格,您可以单击每一行并转到另一个视图。

问题

我将如何在导航方面实现这一点?我应该使用导航控制器作为选项卡(如图 1 所示)还是将视图控制器作为选项卡(如图 2 所示)创建一个 UITabBarController,每个视图控制器都有自己的导航控制器属性?

图片 1:

图 2:

我都尝试了,但效果不佳且令人困惑。我想知道哪个更合适,这样我就可以专注于那个方法,然后看看它为什么不起作用。

【问题讨论】:

    标签: iphone objective-c ipad uinavigationcontroller uitabbarcontroller


    【解决方案1】:

    您提出的第一种方法是only 方法。视图控制器有一个navigationController 属性,但只有当您的视图控制器当前包含在父导航控制器中时,它才会返回一些内容。

    所以要明确一点:您应该有一个 UITabBarController ,其中包含您的导航控制器,一个导航控制器用于您想要在其中具有导航层次结构的每个选项卡。

    【讨论】:

    • 如果 VC 不包含在父导航控制器中,它就不能工作?所以一般来说,如果我需要一个 VC 的导航控制器,那么它应该在 App Delegate 中声明?
    • 如果 VC 不包含在父导航控制器中,navigationController 属性将返回 nil。您的 VC 显然仍会显示,但您将无法通过导航堆栈转换到另一个视图控制器,因为导航控制器将不存在。您当然可以在应用程序委托中创建导航控制器,但如果您使用界面构建器,您可以稍微自动化此过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2015-05-29
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多