2017-03-07 22 views
0

enter image description here如何彈出自我,然後從父視圖控制器執行segue?

我有一個嵌入顯示項目的導航視圖控制器中的表視圖控制器ItemsViewController

流量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崩潰。

EDIT

如果我指的是母體它駁回add視圖控制器,但不執行SEGUE

dismiss(animated: true, completion: { 
self.parent?.performSegue(withIdentifier: "ShowItemList", sender: newItemList) 
}) 
+0

方法您呈現'AddItemsView'或導航推'AddItemsView'控制器?因爲如果你正在呈現,那麼你需要使用'解僱',如果你推控制器,那麼你需要彈出控制器,但不要執行這兩個動作。 –

+0

謝謝你。在故事板中,我創建了一個Present Popover segue – grabury

+0

歡迎隊友:)你的問題解決了嗎? –

回答

0

做以下:

1)調用addItemViewController

解僱方法
self.dismiss(animated: true, completion: nil) 
    self.delegate.methodToCall() 

您必須在從addIte返回時進行委託mViewController和執行父類的方法,當你從addItemViewController

2)然後在你的背部itemsViewController immplement像

func yourMethodToCall() { 
      self.perform(#selector(ItemViewController.temp), with:nil, afterDelay: 0.4) 

     }  

    func temp(){ 
    // push view controller here 

     } 
相關問題