2010-02-08 83 views
2

在我的iPhone應用程序中,我有兩個視圖控制器,我想以模態方式呈現。有一個根控制器呈現第一個(比如A),然後A呈現第二個(比如B)。然後,我想立即解僱A和B,我通過從根控制器調用dismiss…方法來解決這個問題。該文檔指出,在這種情況下,整個堆棧的控制器被A和B都解僱了。兩個控制器都真的從屏幕上消失了,但是當我檢查A時,它的modalViewController屬性仍然被設置,當我稍後再次嘗試呈現B從A,沒有任何反應。我在屏幕上呈現A之前通過在A上調用dismissModalViewControllerAnimated:NO來解決這種情況,但這是一種破解,而不是真正的解決方案。怎麼回事,我做錯了什麼?關閉多個模式控制器

回答

1

嗯。在這種情況下我沒有遇到任何麻煩。

我實現這與委派和協議,只是一個方法dismissMe:其中處理解僱母體,並在兒童的變量重新指向父。當根設置A時,它告訴A,根是它的代表;當設置B時同上。

當B完成時,它發送[delegate dismissMe:self]。 A's dismissMe:解散B unanimated,然後發送[delegate dismissMe:self]。根的解僱我:然後解僱一個無生氣的。可見的效果是B讓位給根。

如果需要,我可以從我的git repo中挖掘出源代碼。當應用程序的工作流程變得更加複雜時,我採取了不同的方案。

+0

要求你挖掘這個來源,我也遇到了麻煩。 – 2010-06-28 05:26:40