UINavigationItem でタイトルを変更しようとしています
// this modify the title
self.navigationItem.title = @"Any title";
// this does not
navigationItem.title = @"Any title";
なんで?
UINavigationItem でタイトルを変更しようとしています
// this modify the title
self.navigationItem.title = @"Any title";
// this does not
navigationItem.title = @"Any title";
なんで?
navigationItem
使用しているオブジェクトではありません。は、を とともにself.navigationItem
使用するときにオンデマンドで作成される読み取り専用プロパティです。カスタムを作成することは確かにできますが、それは標準的なセットアップではしばしば嫌われます。その必要はありません。UIViewController
UINavigationController
UINavigationItem
UINavigationController
に関してはself.title
、それは単なる へのショートカットself.navigationItem.title
です。ショートカットの理由は、独自のカスタム コンテナーを含め、必要に応じて他のコンテナー タイプの他の場所で使用できるためです。
何が起こっているかを解体する場合。基本的な UINavigationController がそうする、navigationItem にアクセスした場合にタイトルをロードして、これが発生している可能性があります。
- (UINavigationItem)navigationItem
{
if (!_navigationItem) {
_navigationItem = [[UINavigationItem alloc] initWithTitle:self.title];
}
return _navigationItem;
}
Apple のコメントについては、こちらをご覧ください: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instp /UIViewController/navigationItem