什么是在一个应用程序中组合导航栏和标签栏的正确故事板示例?

时间:2014-10-02 00:10:46

标签: swift ios8 xcode6

您好我是ios app dev的新手。到目前为止,我只完成了使用导航栏或标签栏覆盖应用程序的教程。现在我想制作一个结合两者的应用程序。

所以,说我有一个应用程序,底部有一个标签栏,有两个标签:朋友和敌人。在每个标签中,我计划有一个运行列表,列出我的朋友和敌人是谁,因此每个标签的导航栏上需要一个addPerson按钮。

鉴于这种情况,组织我的控制器和视图和东西的正确方法是什么? 我的标签控制器和导航控制器都指向同一个视图控制器吗?

我难以概念化我的导航控制器(现在有两个导航控制器?)可以在更复杂的应用程序中工作。

2 个答案:

答案 0 :(得分:8)

以下是如何在Storyboard中进行设置。 TabBarController是主控制器。 TabBarController的每个项目都有自己的NavigationController

enter image description here

您可能希望将TableViewController用于列表。在这里,我将TableViewController显示为NavigationController

的rootViewController

快速构建此方法的方法是删除故事板中的所有内容,然后将两个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一样。