2013-02-26 43 views
1

我想弄清楚如何抓住一個類,只是在我的rootViewController裏面解散它自己。我有幾個選項來解散我的rootViewController,我需要知道它是否來自一個實例,以相應地改變一些用戶界面。知道一個ViewController出現,因爲解僱(而不是繼續)

我正在尋找類似於[self presentingViewController]的東西,除了viewController由於解僱而不是segue出現時。有沒有內置的方法來抓取它?在這個答案

+0

不是很清楚你想要什麼。也許你可以檢查這些方法:'isMovingFromParentViewController','isMovingToParentViewController','isBeingDismissed'和'isBeingPresented' – 2013-02-26 23:15:19

+0

有沒有你無法使用segue的原因?一個unwind segue會很棒,因爲你可以得到正在執行的segue的sourceViewController屬性。 – rdelmar 2013-02-26 23:21:32

+0

謝謝你們這是完美的! – 2013-02-26 23:42:53

回答

2

我基本上解決了這個問題,通過跟蹤我是否訪問了我擔心解僱的一個視圖控制器。這樣,我只是在viewController中設置一個屬性,然後再繼續,所以我已經知道當我返回時需要關注UI更改。感謝您對unwind segues的評論。我一定會在未來很快實施它們!

1

更新

一切都是舊聞 - 因爲的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:完成: 。」

相關問題