为什么标签栏消失了?
Why is the tab bar disappearing?
我当前的视图控制器设置是:
选项卡视图 > 导航控制器 > table 视图控制器 > 导航视图控制器 > 单元格详细信息。请参见
The current setup of viewcontrollers
我曾经有过:
选项卡视图 > 导航控制器 > table 视图控制器 > 单元格详细信息
然后一切都很好。
问题是我需要在用户按下后退按钮时发生自定义操作,为此我在 "table view" 和 "cell details" 之间添加了一个导航控制器。那就是标签栏消失的时候。我知道这似乎是 "normal" 行为,但这对我帮助不大。请帮忙
连接到详细视图控制器的代码。 (我用的是故事板,所以这些东西的代码要轻一点)
@IBAction func add(sender: AnyObject) {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("TableViewToDetailView", sender: self)
}
当 hideTabBarOnPush
属性 为真(在代码中)或在您推送的控制器的故事板上检查 Hide Bottom Bar on Push
时,就会发生这种情况。
我遇到了一个类似的问题,虽然可能与你的不太一样,但希望它能有所帮助。当视图控制器 A 呈现视图控制器 B 时,B 的 hidesBottomBarWhenPushed 属性 可能会被 A 的 hidesBottomBarWhenPushed 属性 覆盖。我通过设置 B 的模态样式修复了它。
我遇到了类似的问题,很难问出正确的问题。将 Tsb Bar Controllers 与 Navigation Controllers 和 View Controllers os 一起使用太棘手,某些事情是不允许的,并且有很多术语,而且,有许多不同类型的 segues,并且有许多不同种类的后果为了做某些事情。
我在这两个部分系列的第二部分中找到了正确的程序(答案):
程序总结:
将源视图控制器和目标视图控制器嵌入到导航控制器中,然后在源视图控制器中创建展开转场(带有签名 @IBAction func methodname(_ segue:)
的方法)。然后,从目标视图控制器,control-click 从导航栏按钮(或触发 return 到第一个视图控制器所需的任何视图)到视图控制器上方的 Exit 对象,然后选择正确的操作弹出菜单中的名称。 unwind segue 可以从 Document Outline 访问,并且可以给一个标识符以在 prepare(for:sender:)
中使用,以防数据需要从目标视图控制器发送到。此外,从第一个视图控制器到第二个导航控制器的 segue 必须是模态的。
我当前的视图控制器设置是: 选项卡视图 > 导航控制器 > table 视图控制器 > 导航视图控制器 > 单元格详细信息。请参见 The current setup of viewcontrollers
我曾经有过: 选项卡视图 > 导航控制器 > table 视图控制器 > 单元格详细信息 然后一切都很好。
问题是我需要在用户按下后退按钮时发生自定义操作,为此我在 "table view" 和 "cell details" 之间添加了一个导航控制器。那就是标签栏消失的时候。我知道这似乎是 "normal" 行为,但这对我帮助不大。请帮忙
连接到详细视图控制器的代码。 (我用的是故事板,所以这些东西的代码要轻一点)
@IBAction func add(sender: AnyObject) {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("TableViewToDetailView", sender: self)
}
当 hideTabBarOnPush
属性 为真(在代码中)或在您推送的控制器的故事板上检查 Hide Bottom Bar on Push
时,就会发生这种情况。
我遇到了一个类似的问题,虽然可能与你的不太一样,但希望它能有所帮助。当视图控制器 A 呈现视图控制器 B 时,B 的 hidesBottomBarWhenPushed 属性 可能会被 A 的 hidesBottomBarWhenPushed 属性 覆盖。我通过设置 B 的模态样式修复了它。
我遇到了类似的问题,很难问出正确的问题。将 Tsb Bar Controllers 与 Navigation Controllers 和 View Controllers os 一起使用太棘手,某些事情是不允许的,并且有很多术语,而且,有许多不同类型的 segues,并且有许多不同种类的后果为了做某些事情。
我在这两个部分系列的第二部分中找到了正确的程序(答案):
程序总结:
将源视图控制器和目标视图控制器嵌入到导航控制器中,然后在源视图控制器中创建展开转场(带有签名 @IBAction func methodname(_ segue:)
的方法)。然后,从目标视图控制器,control-click 从导航栏按钮(或触发 return 到第一个视图控制器所需的任何视图)到视图控制器上方的 Exit 对象,然后选择正确的操作弹出菜单中的名称。 unwind segue 可以从 Document Outline 访问,并且可以给一个标识符以在 prepare(for:sender:)
中使用,以防数据需要从目标视图控制器发送到。此外,从第一个视图控制器到第二个导航控制器的 segue 必须是模态的。