我想弄清楚如何抓住一個類,只是在我的rootViewController裏面解散它自己。我有幾個選項來解散我的rootViewController,我需要知道它是否來自一個實例,以相應地改變一些用戶界面。知道一個ViewController出現,因爲解僱(而不是繼續)
我正在尋找類似於[self presentingViewController]
的東西,除了viewController由於解僱而不是segue出現時。有沒有內置的方法來抓取它?在這個答案
我想弄清楚如何抓住一個類,只是在我的rootViewController裏面解散它自己。我有幾個選項來解散我的rootViewController,我需要知道它是否來自一個實例,以相應地改變一些用戶界面。知道一個ViewController出現,因爲解僱(而不是繼續)
我正在尋找類似於[self presentingViewController]
的東西,除了viewController由於解僱而不是segue出現時。有沒有內置的方法來抓取它?在這個答案
我基本上解決了這個問題,通過跟蹤我是否訪問了我擔心解僱的一個視圖控制器。這樣,我只是在viewController中設置一個屬性,然後再繼續,所以我已經知道當我返回時需要關注UI更改。感謝您對unwind segues的評論。我一定會在未來很快實施它們!
更新
一切都是舊聞 - 因爲的XCode 4.5,我們可以用開卷塞格斯找回以往任何的viewController,並觸發該控制器的開卷方法。 (感謝@rdelmar)
What are Unwind segues for and how do you use them?
當一個類駁回本身,你不能抓住它,因爲它被...解僱了。你需要持有之前它被解僱,然後知道解僱。
在這一點上進行了詳細的闡述,班級通常不會自責,他們的班級會解僱他們。這裏的混淆方法可能是UIViewController的方法:
- (void) dismissViewControllerAnimated:
這是
- (void) [[self presentingViewController] dismissViewControllerAnimated:completion:nil]
的呈現的viewController有一個屬性presentedViewController
持有到該駁回對象的速記 - 直到它被駁回。當呈現視圖控制器關閉時,它將它的presentedViewController
屬性重置爲零。但是,您始終可以選擇在解僱事件之前將該引用複製到另一個(強大/保留的)屬性中,並在該解除事件之後進行詢問。
引述蘋果:
「如果你想保留到接收機的呈現視圖控制器的引用,調用之前得到的presentedViewController屬性值dismissViewControllerAnimated:完成: 。」
不是很清楚你想要什麼。也許你可以檢查這些方法:'isMovingFromParentViewController','isMovingToParentViewController','isBeingDismissed'和'isBeingPresented' – 2013-02-26 23:15:19
有沒有你無法使用segue的原因?一個unwind segue會很棒,因爲你可以得到正在執行的segue的sourceViewController屬性。 – rdelmar 2013-02-26 23:21:32
謝謝你們這是完美的! – 2013-02-26 23:42:53