2012-03-18 58 views
0

我希望我簡單地忽略了一些簡單的事情。但在這裏的情況。從另一個視圖中關閉模式(通過代理)

我有一個root vc,它打開一個模態視圖LoginScreen。在該視圖中,我創建了一個協議(ViewControllerDelegate),一旦用戶通過模式登錄,父VC將關閉模式,一切正常。

在LoginScreen.m關閉模式我所用的是這個代碼:

[self.delegate loginConfirmed:self]; 

完美的作品。不過,我有另一種觀點認爲,登錄被確認。仍然作爲一種模式。稱它爲LoginScreen2。

我無法弄清楚如何讓Modal從LoginScreen2關閉並返回到根VC。我試過了一堆不同的變化,但沒有運氣。

[((LoginScreen *)self.parentViewController).delegate loginConfirmed:((LoginScreen *)self)]; 

我一直在尋找和搞亂了幾個小時,沒有運氣。再次,我希望我只是想念一些簡單的東西,而沒有看到它。如果任何人有任何想法,真棒。

+0

我沒有發現問題,你有第二個模態視圖,出現在LoginScreen之後?你不能解僱它? – LuisEspinoza 2012-03-18 01:34:15

+0

嘿@LuisEspinoza - 感謝您在此檢查。今晚我爲自己過分的複雜。下面的Danh解決方案很好地解釋了它但我很感激你願意幫忙。 – 2012-03-18 01:44:05

回答

2

不知道是誰提出的第二個視圖控制器,但有一點可以幫助你是知道一個模態呈現視圖控制器可以辭退自己:

[self dismissModalViewControllerAnimated:YES]; 

根視圖控制器可以檢查用戶狀態當它出現,並且presentModalViewController:Login1。 Login1更改用戶登錄狀態,並自行解散。 Root會看到不同的用戶狀態(當它即將通過viewWillAppear:方法重新出現)並在Login2上顯示模態。沒有代表團需要。

+0

哇,看起來我只是花了一大堆時間來爲自己複雜化!非常感謝你的解釋和想法。像魅力一樣工作,並不複雜!謝謝,丹 – 2012-03-18 01:42:24

相關問題