Objective-C
iOS

割と初期にハマるtitleというプロパティについて。

More than 5 years have passed since last update.

UINavigationControllerを使ったアプリを作るときに、表示されているNavigationBarにビューのタイトルを表示させようとして


Sample


self.navigationController.title = @"タイトル";


として、NavigationBarにタイトルが出なくてションボリする事は割とあると思いますが。実際は以下のように、NavigationItemに対してタイトルを設定してあげると意図したとおりの動作をします。


Sample


self.navigationItem.title = @"タイトル";


どうしてこうなるのか?という点ですが

一つ目のコードでは、UINavigationControllerの親クラスのUIViewControllerに定義されたtitleプロパティに値を設定しているだけで、これは定義の通りUIViewControllerのタイトルを設定するための物だからです。

対して、二つ目のコードではUINavigationBar上で管理されている、UINavigationItemのtitleプロパティへ値を設定しているので、NavigationBarのタイトル部分へ設定した値が反映されます。