您好我是ios app dev的新手。到目前为止,我只完成了使用导航栏或标签栏覆盖应用程序的教程。现在我想制作一个结合两者的应用程序。
所以,说我有一个应用程序,底部有一个标签栏,有两个标签:朋友和敌人。在每个标签中,我计划有一个运行列表,列出我的朋友和敌人是谁,因此每个标签的导航栏上需要一个addPerson按钮。
鉴于这种情况,组织我的控制器和视图和东西的正确方法是什么? 我的标签控制器和导航控制器都指向同一个视图控制器吗?
我难以概念化我的导航控制器(现在有两个导航控制器?)可以在更复杂的应用程序中工作。
答案 0 :(得分:8)
以下是如何在Storyboard中进行设置。 TabBarController
是主控制器。 TabBarController
的每个项目都有自己的NavigationController
:
您可能希望将TableViewController
用于列表。在这里,我将TableViewController
显示为NavigationController
。
快速构建此方法的方法是删除故事板中的所有内容,然后将两个TableViewControllers
拖出另一个Editor->Embed In->Tab Bar Controller
。通过拖动它们周围的轮廓来选择两者,然后从菜单中选择TableViewController
。然后依次选择每个Editor->Embed In->Navigation Controller
并选择{{1}}。
答案 1 :(得分:0)
如果要动态设置标题,请使用UITabBar委托中的此函数:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
self.title = viewController.title
print("Should select viewController: \(viewController.title) ?")
return true;
}
然后在视图控制器中设置viewControllers title
,就像通常使用UINavigationBar一样。