導航控制器上的後退按鈕有時不會出現。請注意,有時候它確實如此,所以其他地方的som代碼中可能還有其他的東西,但我試圖以我能想到的方式進行調試,似乎沒有任何工作。後退按鈕 - 不能調試
用於推動視圖控制器的代碼如下(非常標準):
CommentsTableViewController *vc = [[[CommentsTableViewController alloc] init] autorelease];
vc.puzzleID = self.puzzleModel.puzzleID;
[self.navigationController pushViewController:vc animated:YES];
要調試這個問題,我已經把在CommentsTableViewController在viewWillAppear中和viewDidAppear(以下代碼除我只註冊爲觀察員一次):
self.navigationItem.hidesBackButton = NO;
[self.navigationItem addObserver:self forKeyPath:@"backBarButtonItem" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial) context:nil];
self.navigationItem.backBarButtonItem.title = @"Tactic";
NSArray *viewControllerArray = [self.navigationController viewControllers];
int parentViewControllerIndex = [viewControllerArray count] - 2;
[[viewControllerArray objectAtIndex:parentViewControllerIndex] setTitle:@"Tactic"];
這似乎沒有任何幫助。放入斷點後,似乎在層次結構上方的視圖控制器中有一個標題(@「Tactic」),而hBackButton已經是NO。 backBarButtonItem屬性是零,並始終爲零,但我認爲這是預期的行爲,即使你有一個backBarButtonItem?
編輯:在父控制器,我在第一設定hidesBackBackButton爲YES,再後來(I推下一個控制器上之前),將其設置回NO。當我刪除這些行時,新的視圖控制器有一個後退按鈕。爲什麼一個視圖控制器的導航項會影響下一個導航項?
歡迎任何建議或想法。非常感謝。
導航控制器是窗口的根視圖控制器嗎? –
@RamyAlZuhouri是的。它是。 – plivesey
我也讀過(從另一個StackOverflow的問題,所以不知道這是否正確),你應該設置hidesBackBackButton,然後再推新視圖控制器。但是,我在應用程序中的許多其他位置執行此操作,並且沒有任何問題。 如果是這樣,是否有另一種方法呢? – plivesey