2012-01-30 72 views
0

我有包含一個表視圖的視圖控制器,並且該導航控制器內包裹,即,在應用程序委託這兩個被創建並設置爲:視圖控制器應該如何中止加載/解除?

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.myViewController]; 
self.window.rootViewController = navController; 

如果在一行上在用戶點擊內然後創建另一個視圖控制器並將其推送到導航控制器的堆棧:

[self.navigationController pushViewController:webPageController animated:YES]; 

webPageController加載並讀取本地文件。如果文件丟失,我想中止加載webPageController並顯示其視圖並顯示錶視圖。 我應該如何實現這一目標?

如果webPageController檢測到問題,我試着用它調用各種東西,如實驗:

[self.navigationController popViewControllerAnimated:YES]; 

[self.navigationController.navigationBar popNavigationItemAnimated:YES]; 

要彈出自行關閉導航堆棧,然而這些不是活得沒有工作,導航控制器試圖以這種方式自動彈出是錯誤的嗎?實施這個的規範方式是什麼?

謝謝

回答

2

這應該沒問題。你在哪裏調用popViewControllerAnimated:?如果您在viewDidAppear之前打電話,您可能會遇到問題。 ViewControllers需要完成出現和消失,然後才能進行任何類型的彈出或推送到他們的堆棧。如果你以前這樣做,你會得到非常奇怪的結果。最常見的症狀是它不起作用。其中的按鈕往往也會混亂。

+0

謝謝。它在loadView結束時但在viewDidAppear之前調用。我會重新安排一些事情並嘗試一下。但是,如果它在viewDidAppear後自動彈出,用戶會注意到視圖很快出現/消失?如果viewDidAppear意味着視圖字面上確實出現,那麼它會瞬間可見嗎? – Gruntcakes 2012-01-30 17:56:03

+0

現在可以使用 - 不過表格視圖在屏幕上滑動一半,然後返回,我必須看看如果我可以事先確定表格視圖控制器是否推動其細節控制器成功或失敗,儘管這可能會破壞我的封裝。 – Gruntcakes 2012-01-30 18:04:37