2013-03-27 116 views
0

我在一個情節串連圖板以下控制器:開卷從在導航控制器內的表視圖控制器的按鈕

Storyboard

導航控制器由一個按鈕中的主視圖控制器segued到剩下。它出現在popover中。當用戶單擊右側表視圖控制器頂部的「註銷」按鈕時,我需要繼續回到主視圖控制器,調用執行註銷的方法,然後顯示認證視圖控制器(如果用戶未登錄,則不能使用該應用程序)。我試圖做到這一點的每一個方法都失敗了。

  1. 我幾乎可以用開卷SEGUE做到這一點,但如果我在主視圖的展開方法我啓動認證視圖控制器,我得到一個「嘗試從視圖控制器駁回,而演示或解僱是進展「警告。設置一個計時器來等待解僱完成的任意時間看起來像一個黑客。 (我希望有一個「你的segue剛完成」回調。)

  2. 我不能通過設置主視圖控制器作爲prepareForSegue方法中的設置控制器的委託並調用委託方法當點擊按鈕時,這將是常態,因爲segue中的destinationViewController不是我的設置控制器,它是容納它的導航控制器。

有一些明顯的方法可以做到這一點,對吧?也許通過將按鈕附加到設置視圖控制器中的一個方法來解除它自身,然後在完成塊中觸發一個NSNotification?這似乎仍然很難。

回答

1

可以使主視圖控制器在prepareForSegue的設置方法控制器的委託,通過使用:

SettingsViewcontroller *settings = [(UINavigationController *)segue.destinationViewController topViewController]; 
settings.delegate = self; 

我想,那麼你可以調用的設置控制器的viewDidDisappear方法的委託方法。

+0

無論出於何種原因,我似乎無法讓popover解僱,但您的解決方案顯然是正確的,所以我接受它。謝謝。 – bkocik 2013-03-27 12:20:05

相關問題