目前我在Interface Builder中有以下情况。我想点击"高分"开始视图控制器中的按钮。我尝试拖放Tab bar view controller
,我也尝试拖放navigation controller
tab bar view controller
作为root view controller
。
但我无法获得自动'导航栏中的后退按钮,应该链接回“开始视图控制器”。 什么是最好的解决方案?
答案 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”的工作后退按钮。