标签栏为什么会消失?

时间:2016-05-05 12:28:35

标签: ios xcode swift uitabbarcontroller

我目前的viewcontrollers设置是:  标签视图&gt; <导航控制器>表格视图控制器&gt; <导航视图控制器>细胞细节。请参阅 The current setup of viewcontrollers

我以前有: 标签视图&gt; <导航控制器>表格视图控制器&gt;细胞细节 然后一切都很好。

问题是我需要在用户按下后退按钮时执行自定义操作,为此,我在“表格视图”和“单元格详细信息”之间添加了导航控制器。当标签栏消失时那就是那个。我理解这似乎是“正常”行为,但这对我没什么帮助。请帮忙。

细分视图控制器的代码。 (我使用故事板,因此对这些事情的代码很清楚)

@IBAction func add(sender: AnyObject) {
    dispatch_async(dispatch_get_main_queue()) {
        self.performSegueWithIdentifier("TableViewToDetailView",    sender: self)
    }

3 个答案:

答案 0 :(得分:3)

hideTabBarOnPush属性为true(在代码中)或在故事板上为您正在推送的控制器检查Hide Bottom Bar on Push时,会发生这种情况。

enter image description here

答案 1 :(得分:1)

我有一个类似的问题,正确的问题很难问。将Tsb Bar控制器与导航控制器和View Controller一起使用会非常棘手,不允许某些事情,并且有很多术语,并且有很多不同类型的segue,并且做某些事情会带来很多不同类型的后果

在这两个系列的第二部分中,我找到了正确的过程(答案):

  1. Storyboards Tutorial for iOS: Part 1
  2. Storyboards Tutorial for iOS: Part 2

过程摘要: 将源视图控制器和目标视图控制器嵌入导航控制器中,然后在源视图控制器中创建展开序列(带有签名@IBAction func methodname(_ segue:)的方法)。然后,从目标View Controller中,从导航栏按钮(或触发返回到第一个View Controller所需的任何视图)中单击鼠标左键,然后单击View Controller上方的Exit对象,然后从弹出菜单中选择正确的动作名称。如果需要将数据从目标视图控制器发送到prepare(for:sender:),则可以从文档大纲中访问展开的序列,并且可以给该标识符分配标识符以在@Query(value = "select * from get_name(:firstName)", nativeQuery=true) String getName(String firstName); 中使用。另外,从第一个视图控制器到第二个导航控制器的选择必须是模态的。

答案 2 :(得分:0)

我遇到的类似问题虽然可能与你的不一样,但希望它可能会有所帮助。当视图控制器A呈现视图控制器B时,B的hidesBottomBarWhenPushed属性可以被A的hidesBottomBarWhenPushed属性覆盖。我通过设置B的模态样式来修复它。