【发布时间】:2018-02-27 14:29:13
【问题描述】:
我有一个看起来像这样的故事板:
Structure:
UINavigationController -> UIViewController
UITabBarController |
UINavigationController -> UIViewController
我想为UITabBarController 的两个子视图控制器应用相同的导航栏。
我在互联网上的多个页面上读到,Apple 严格建议不要将 UITabBarController 直接嵌入到 UINavigationController 中。
但是,我不知道如何为所有底层控制器获取相同的状态栏(我希望所有按钮在所有控制器上都相同)。
正如 cmets 中所说,我希望两个 UINavigationControllers 看起来相同,我希望它们通过相同的控制器导航,并且我希望在每个 UINavigationController 中添加功能相同的自定义按钮。
【问题讨论】:
-
你说的“同一个导航栏”是什么意思?你想让它看起来一样吗?或者您是否希望导航栏通过相同的控制器导航?您是否尝试向导航栏添加自定义按钮,并且希望在不同的导航控制器中使用相同的按钮?
-
@DonMag “相同的导航栏” 是指共享与相同功能和操作相关的自定义栏按钮项的导航栏。
UITabBarController的两个子项在导航栏中应该具有相同的按钮和相同的操作。我也想浏览相同的控制器。所以我会用“yes”回答你最后三个问题。只是为了说清楚。 -
好吧——这可能有点混乱……如果每个 Tab 加载相同的 NavigationController,具有相同的 ViewController,那么 Tabs 之间有什么区别?用户会清楚吗?
-
它们都包含一个加载不同内容的表格视图。第一个加载一些联系人,而另一个(第二个)加载聊天(消息)。用户应该很清楚,因为选项卡栏突出显示了选定的选项,并且表格视图具有其他内容。基本上,有一个
UITabBarController有两个UITableViewController作为子级(或修改后的UIViewControllers包括一个UITableView)。使用导航栏(自定义按钮),用户可以访问另一个视图控制器。 -
嗯...所以,用户在 Tab-1(联系人)...选择一个联系人,“联系人详细信息”VC 被推送到 NavController...用户选择 Tab -2 ... NavController 会发生什么?它“弹回”但加载不同的内容?所以点击选项卡看起来与点击“返回”相同,但它并没有真正返回?也许您真正想要的是显示底部工具栏的 NavController,并向工具栏添加按钮以更改 NavController 堆栈的当前“模式”?
标签: ios swift xcode uinavigationcontroller uitabbarcontroller