ナビゲーションコントローラーの戻るボタンが表示されない場合があります。時々そうなるので、おそらく他の場所のsomコードで何かが起こっていることに注意してください、しかし私はこれを私が考えることができるあらゆる方法でデバッグしようとしました、そして何もうまくいかないようです。
ビューコントローラをプッシュするためのコードは次のとおりです(かなり標準的):
CommentsTableViewController *vc = [[[CommentsTableViewController alloc] init] autorelease];
vc.puzzleID = self.puzzleModel.puzzleID;
[self.navigationController pushViewController:vc animated:YES];
この問題をデバッグするために、viewWillAppearとviewDidAppearのCommentsTableViewControllerに次のコードを配置しました(オブザーバーとして一度だけ登録する場合を除く)。
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"];
これはどれも役に立たないようです。ブレークポイントを設定すると、階層内で私の上のView Controllerにタイトル(@ "Tactic")があり、hidesBackButtonはすでにNOになっているようです。backBarButtonItemプロパティはnilであり、常にnilですが、backBarButtonItemがある場合でも、これは予期される動作だと思いますか?
編集:親コントローラーで、最初はhidesBackBackButtonをYESに設定し、その後(次のコントローラーを押す前に)、NOに戻します。これらの行を削除すると、新しいViewControllerに戻るボタンがあります。あるビューコントローラのナビゲーションアイテムが次のナビゲーションアイテムに影響を与えるのはなぜですか?
任意の提案やアイデアを歓迎します。どうもありがとう。