Interface Builder:导航中的后退按钮

时间:2015-08-12 15:22:11

标签: ios interface-builder swift2

目前我在Interface Builder中有以下情况。我想点击"高分"开始视图控制器中的按钮。我尝试拖放Tab bar view controller,我也尝试拖放navigation controller tab bar view controller作为root view controller

但我无法获得自动'导航栏中的后退按钮,应该链接回“开始视图控制器”。 什么是最好的解决方案?

Current IB situation

1 个答案:

答案 0 :(得分:0)

这是两个问题。

第一个问题:如何在UITabBarController中显示'高分'?

根据Apples指南,您不应在UINavigationController中使用UITabBarController。但是如果你真的想要添加一个UITabBarController,不要将它拖放到你的故事板,而是选择例如您的“开始”视图控制器,然后选择编辑器 - > 嵌入...... - >菜单中的 TabBarController

您应该查看UITabBarController上的教程(例如this one

但在你的情况下,在我看来,你可能只想在你的'Highscores'按钮中添加另一个Show segue到第三个(当前还不存在)'Highscores'视图控制器。

第二个问题:为什么自动后退按钮不起作用?

根据我在屏幕截图中看到的,您在“Het Spel”视图控制器中添加导航栏的方式可能有问题(可能一般)。 您是否在Interface Builder中手动添加了UINavigationBar,它的标题和rightBarButtonItem?

我建议回到原点并做到这一点:

1)删除导航控制器和IB中所有当前的segue。 (现在两个视图控制器中都不应显示任何导航栏。)

2)在IB中选择“开始”视图控制器,然后从菜单中选择编辑器 - > 嵌入...... - > 导航控制器。 (现在你的'开始'视图控制器应该有一个导航栏,但'Het Spel'不应该。)

3)按住Ctrl键拖动'Speel het Spel!'按钮到“Het Spel”视图控制器并选择Show segue(Push segues已弃用)。 (现在两个视图控制器都应该有导航栏。)

4)在两个视图控制器的代码中设置title属性,在'Het Spel'中设置rightBarButtonItem。例如。在viewDidLoad

// StartViewConroller
override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "Start"
}

// HetSpelViewController
override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "Het Spel"
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Checken", style: UIBarButtonItemStyle.Done, target: self, action: "checkenTapped")
}

现在,“Het Spel”中的导航栏会自动显示名为“Start”的工作后退按钮。