我在导航视图控制器中嵌入了一个名为ItemsViewController
的tableview视图控制器,用于显示项目。
流量1(按预期工作)
我在ItemsViewController
上有一个“新项目”按钮,单击该按钮会显示一个视图控制器弹出窗口(AddItemViewController
),您可以在其中添加项目的名称和其他详细信息。单击“保存”后,将弹出视图,并显示ItemsViewController
,显示新创建的项目。
流程2
如果您点击“保存并打开”创建新项目,我希望它弹出AddItem view controller
并按itemDetail
视图控制器显示新创建的项目名称和其他项目详细信息。
因此,在AddItemsView控制器的“保存并打开”操作中,我有:
dismiss(animated: true, completion: {
self.performSegue(withIdentifier: "ShowItemList", sender: newItemList)
})
这解除了Itemsview控制器,但随后它与thread 1: signal SIGABRT
崩溃。
修改
如果我引用父级,则它会解除添加视图控制器但不执行segue
dismiss(animated: true, completion: {
self.parent?.performSegue(withIdentifier: "ShowItemList", sender: newItemList)
})
答案 0 :(得分:0)
执行以下操作:
1)在addItemViewController中调用dismiss方法
self.dismiss(animated: true, completion: nil)
self.delegate.methodToCall()
从addItemViewController返回时必须创建委托,并在从addItemViewController返回时在父类中实现方法
2)然后在你的itemsViewController中实现类似
的方法 func yourMethodToCall() {
self.perform(#selector(ItemViewController.temp), with:nil, afterDelay: 0.4)
}
func temp(){
// push view controller here
}