![](/img/trans.png)
[英]How within a tab bar controller do I segue from one view controller to another and retain the tab bar?
[英]How to segue from tab bar view controller to another view which is a child of a navigation controller
我布置了我的主屏幕(摘要屏幕),如下面的屏幕截图所示:
我在 UITabBarController 子类上添加了“+”按钮。 此按钮将转到 controller 视图并以模态方式显示。 为了让您了解我是如何构建故事板的,请参阅下面的屏幕截图:
这个模态视图 controller 有一个用户需要填写的表格,一旦完成,就会有一个“完成”按钮,它将 1) 关闭模态视图,2) 将它们带回根视图,即“ “摘要”选项卡或“详细信息”选项卡,然后 3) 将他们带到列表视图,显示他们在列表中输入的最新数据(目标视图 - 以红色突出显示)。
现在,当用户点击“+”按钮时执行 segue 已经很简单了。 使用以下代码:"
menuButton.addTarget(self, action: #selector(menuButtonAction(sender:)), for: .touchUpInside)
然后
func addNewExpense(action: UIAlertAction){
self.performSegue(withIdentifier: "segue_formModal", sender: self)
}
在模式上,我设置了一个协议,然后将表单数据发送回选项卡视图 controller。
extension XtabBarViewController: NewInfoDelegate{
func newInfoSubmitted(formData: FormData) {
performSegue(withIdentifier: "segue_ListingPage", sender: self)
}
}
但似乎 perform segue 不起作用。 它说segue不存在。 “segue_ListingPage”是连接摘要视图和目标视图的转场。
如何从标签栏视图 controller 转到目标视图? 任何帮助表示赞赏。
提前致谢!
您可以将导航视图 controller 作为入口点。
我自己想通了。 为了那些遇到同样问题的人的利益,这是我的解决方案。
我只是从标签栏视图 controller 添加了代码:
let childVC = children[0].children[0]
childVC.performSegue(withIdentifier: "segue_TXListPage", sender: self)
所以我在这里所做的是从视图 controller 调用 performSegue,该视图连接到目标 controller。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.