2010-09-15 58 views
0

導航從[[TTNavigator navigator] openURLAction:theUrl];從一個UIviewController控制器開始,另一個UIViewController是該URL的目標。該地圖是設定一套用下面的代碼,並毫無疑問導航進入到正確的地方:Three20導航通過openURLAction; self.navigationController是否在推VC?

TTURLMap* map = navigator.URLMap; 
[map from:@"tt://goToMyViewController" toViewController:[MyViewControllerClass class]]; 

在我想要操作上的後退按鈕的圖像推視圖控制器,但不希望改變標題。它應該始終是視圖控制器的標題,如果沒有設置標題,則該視圖控制器的標題將被推到頂部,或者本地化爲「返回」。

問題: 在這種推視圖控制器的viewDidLoad我開始與

NSArray* viewControllers = self.navigationController.viewControllers; 

獲得導航堆棧,所以我可以看到相應的視圖控制器的標題。但viewControllers是零...

但是,如果我什麼都不做,默認後退按鈕確實有正確的標題。我想到看着左邊的BarButtonItem和backBarButtonItem標題屬性,但沒有什麼有意義的,或者...

任何人都知道發生了什麼,爲什麼會發生這種情況或如何解決它?

回答

1

這是其中viewDidLoad是做錯的地方之一 - 比較各種視圖控制器,並發現它們如何被調用時沒有真正的區別(但沒有viewControllers而其他人沒有),它讓我感到震驚如果它真的是零,popViewControllerAnimated也不應該工作。我發現viewControllers不是零,我打電話popViewControllerAnimated,從那裏實驗顯示我可以得到我在viewWillAppear:後的標題。 因此,viewWillAppear:似乎是一個可靠的地方觸摸self.navigationControllerviewDidLoad不是。

+0

你知道爲什麼了嗎?奇怪的行爲,不是嗎? – CedricSoubrie 2011-05-28 23:24:22