一旦我点击表格单元格,我想从嵌入在导航控制器中的tableview转到另一个视图控制器。我仍然希望将第二个视图控制器嵌入到同一个导航控制器中。因此,我通过故事板创建了segue。
但是,如果应该执行segue,我想在敲击单元格后进行有条件的检查。
我已经检查了方法require.extensions
,这将满足我的需求,但不幸的是,它在表单击处理程序之前执行。如果我删除故事板segue并且仅通过.js
进行segue,我的第二个视图控制器就不再嵌入到同一个导航控制器中。
有什么建议吗?
这是我的代码:
shouldPerformSegueWithIdentifier
答案 0 :(得分:5)
您应该从视图控制器本身而不是单元格开始故事板segue。这样,如果点击一个单元格,它就不会自动执行。
如果您想在不使用故事板segue的情况下将视图控制器推送到导航堆栈,请使用UINavigationController
的{{1}}:
pushViewController
答案 1 :(得分:1)
将故事板标识符分配给InputVC
,说出"input_vc"
。然后用storyboard实例化它。然后推送到InputVC
它将在同一导航堆栈上。
将didSelectRow
中的代码添加为:
然后使用故事板实例化您的InputVC
。然后推送到InputVC
它将在同一导航堆栈上。
guard let inputVC = storyboard?.instantiateViewController(withIdentifier: "input_vc") as? InputVC else { return }
inputVC.app = app
self.navigationController?.pushViewController(secondVc, animated: true)
答案 2 :(得分:1)
以编程方式,您可以这样做
let lvc = storyboard?.instantiateViewController(withIdentifier: "yourViewController") as? yourViewController
self.navigationController?.pushViewController(lvc, animated: true)