0

我對這個問題沒有任何想法。 我有一個UITabbarcontroller和2個帶有Navigationcontrollers的選項卡。self.navigationcontroller在沒有導航項的情況下推送視圖控制器

我有一組用於導航的ViewControllers。這些ViewController在兩個標籤/導航控制器上的使用順序相同,但數據稍有不同。

以前到最後的ViewController正在一個NSURLConnection的,並在connectionDidFinishLoading:最後的ViewController應該顯示,使用此代碼:

[self.navigationController popToRootViewControllerAnimated:NO]; 
[self.navigationController pushViewController:lastViewController animated:YES]; 

這將彈出到根視圖 - 控制,但絕不會推最後一個ViewController。 (旁註:這實際上工作了很長一段時間,但在第二個tabbar的navigationcontroller中使用時也停止工作)。

而且,如果我註釋掉的第一行:

//[self.navigationController popToRootViewControllerAnimated:NO]; 
[self.navigationController pushViewController:lastViewController animated:YES]; 

最後的ViewController顯示,但是偏出導航欄中的後退按鈕,它不是禁用或東西。 我懷疑self.navigationcontroller是否返回錯誤的navigationcontroller。就好像導航控制器已經「忘記」了視圖控制器堆棧。

  1. 這可能與connectionDidFinishLoading有關:是一個不同的線程?
  2. 有人建議如何以不同的方式獲得「此選項卡中的導航控制器」?

我三重檢查了代碼上下​​,我找不到任何東西。在此之前的其他視圖控制器正在被推送和彈出而沒有任何問題。

感謝您對此的任何幫助,我感覺卡住了!

回答

0

你說什麼給了我一個主意。我在考慮self.navigationController可能被設置爲零後,因此,它沒有設置,當你推動新的視圖控制器。這樣做解決了問題! :)

UINavigationController *navigationController = self.navigationController; 
[navigationController popToRootViewControllerAnimated:NO]; 
[navigationController pushViewController:lastViewController animated:YES]; 
相關問題