2011-11-10 197 views
3

如果我沒有弄錯,模態視圖必須從父視圖中解除,而不是從模態視圖本身解除。Dismiss Modal View

在我目前的項目中,我有兩個模態視圖。在第一個中,我將數據傳遞給父視圖。當數據傳遞給父視圖時,解除執行。

現在,我有沒有數據傳遞給父視圖另一個模式的看法,所以我不知道如何解僱等比做一個自dismissModalView

除此之外,任何其他建議的關於這個話題的良好做法?

在此先感謝!

UPDATE:

從答案I'm饒人,我看到我haven't讓我自己很清楚(不尋常的,BTW)。

我知道如何自我解僱modalViewController。那沒問題。 我也知道如何在傳遞一些數據時使用protocol-delegate方法從父視圖中關閉modalViewController。

我的問題是:如何在沒有數據傳遞時從父視圖中關閉modalViewController。

再次感謝!

回答

12

您可以從modalView撥打:

[self dismissModalViewControllerAnimated:YES]; 

但是...如果你想有一個恆定的編碼模式,不管模式視圖「返回」的東西或沒有,我建議你解僱你的看法從父母(即打電話的人,打發人的那一方)。但是你可以做到這一點。

這是否回答你的問題?

+0

所以我有一個方法,通過什麼也將工作? – Marcal

+0

@馬卡爾:呃,在數據傳遞和解散視圖之間沒有關係......我不明白你的目的。 – Oliver

+0

好吧,我之前使用協議委託方法將數據傳遞給父視圖。當父視圖獲取數據時,它將駁回模態視圖。基本上我的問題是我是否可以使用這種方法,即使我不需要傳遞任何數據。 – Marcal

5

您可以直接解僱模態視圖(即不是從父)使用

[self dismissModalViewControllerAnimated:YES]; 
0

如果您不希望從self調用它,你可以使用委託來調用它做。

因此,您將有一個方法viewControllerFinished或您的視圖控制器將調用它的委託的東西。

這樣,無論啓動模式視圖控制器也會解僱它。如果您需要從視圖控制器獲取任何信息,這很有用。

4

對於iOS6的並在以後使用

[自dismissViewControllerAnimated:YES完成:無];

6

請留意,

[self dismissModalViewControllerAnimated:YES]; 

已經從iOS 6中起棄用。寧可使用

[self dismissViewControllerAnimated:YES completion:nil]; 
0

Swift version ...

self.dismissViewControllerAnimated(true, completion:nil) 
相關問題