2015-04-03 176 views
0

我有一個密碼視圖控制器,它總是在應用程序被激活時呈現。呈現兩個視圖控制器,解散正確的視圖控制器

我有另一個視圖控制器,它是一個按鈕的點擊。在這裏有一個過程要顯示,一旦完成就自行解散。

的方案是:

1)提出這種觀點位指示,過程開始。

2)在此過程完成之前,請按主頁按鈕。

3)現在再次打開應用程序。

4)提供密碼視圖控制器,因爲它是強制性的。

5)此時在步驟1中開始的過程完成。解僱方法被調用。但密碼視圖控制器被取消而不是此過程VC。

如何解僱特定的VC?

**Edit:** 

我對此嘗試了不同的方法。當我從appdelegate展示passcodeVC時,我創建一個新的導航並將其設置爲rootViewController。之前的導航存儲在參考中。在這裏,我成功保持了密碼視圖。密碼視圖現在不被解僱。

當用戶輸入密碼時,我再次將rootviewcontroller更改爲舊的。我認爲這會起作用。但是,事實並非如此。 MailVc被解僱。當我嘗試再次展示mailVC時,它說this is already presented.

好像,因爲我更改了rootVC,然後當它不存在於視圖中時調用dissmissVC。 有人可以解釋我這個。

謝謝。

+0

您是否嘗試委託模式?此外,對於做的過程不作爲控制器呈現,或者如果你這樣做,只是應用程序進入後臺並關閉進度控制器時保存進度。 – Retro 2015-04-07 05:46:37

+0

是的。我使用委託解決了這個問題。但我想知道編輯的問題。爲何發生這種情況當視圖不在窗口的根目錄並且調用解除時。視圖被解僱。但後來當我嘗試再次呈現時,它說已經呈現。即使我創建了該類的新實例來呈現。 – Durgaprasad 2015-04-07 06:26:50

+0

作爲根控制器,rootVC已經呈現了視圖,因此當您在更改rootVC之前重新設置視圖時,只需關閉進度VC或正如我在應用程序進入後臺時告訴您的那樣。 – Retro 2015-04-07 06:31:52

回答

0

解除當前視圖控制器之前,您可以測試其類型。如果是kindOfClass(YourPasswordViewController),請不要關閉它。否則,消除。

從你的UIViewController進行計算並取消當前的UIViewController,請執行以下操作。

獲取實例到您的UINavigationController。獲得viewControllers財產。這是一個NSArray。訪問最後的UIViewController並測試它是否是PasswordUIViewController的對象。如果是,那就不要放棄它。

+0

好的。但是如何找到這個視圖控制器。 navCtrl具有viewcontrollers屬性,可以提供推送的視圖。如何獲得展示視圖。 – Durgaprasad 2015-04-03 13:10:11

+0

@Durgaprasad更新我的答案。讓我知道你是否有任何困惑 – 2015-04-03 13:15:37

+0

當我訪問nav.viewcontrollers時,我得到了homeVc和mailVc數組。我沒有看到控制器。有兩個呈現的vc,即mailVc和passcodeVC。 – Durgaprasad 2015-04-06 07:17:35