我目前的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)
}
答案 0 :(得分:3)
答案 1 :(得分:1)
我有一个类似的问题,正确的问题很难问。将Tsb Bar控制器与导航控制器和View Controller一起使用会非常棘手,不允许某些事情,并且有很多术语,并且有很多不同类型的segue,并且做某些事情会带来很多不同类型的后果
在这两个系列的第二部分中,我找到了正确的过程(答案):
过程摘要:
将源视图控制器和目标视图控制器嵌入导航控制器中,然后在源视图控制器中创建展开序列(带有签名@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的模态样式来修复它。