アイテムの一般的なリスト用のコントローラー/ビューがあり、カスタムリストを表示するために拡張できます。リストとナビゲーションは正常に機能します。しかし、UINavigationControllerのタイトルを変更することはできません。汎用コントローラーの場合:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview: navigationController.view];
}
- (void)setNavigationTitle: (NSString *)title
{
NSLog(@"set title: %@", title); // this works
self.navigationController.title = title; // Nothing works here
}
次に、拡張クラスはそうします。
- (void)viewDidLoad
{
[super viewDidLoad];
[self setNavigationTitle: @"Custom list"];
}
ナビゲーションバーにはまだタイトルとして「アイテム」があります:(
UIViewController
にはtitle
プロパティがあり、NavigationController
によって表示されるのはそのプロパティです。したがって、新しいUIViewController
をナビゲーションスタックにプッシュするときは、そのUIViewController
のタイトルを適切なものに設定します。
あなたの場合、次のようになります。
[self setTitle:@"WhateverTitle"];
Swiftソリューションをお探しの方へ:
class CustomViewController: SuperViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "My Custom Title"
}
}
title
は、ViewControllerに埋め込まれているUIViewController
ではなく、UINavigationController
に設定する必要があります。
使用する
self.title = @"yourTitle";
title = "whateverTitle"
。これはUIViewController
インスタンスプロパティです;いつでも呼び出す。
ドキュメント から:
宣言
var title: String? { get set }
ディスカッション
タイトルを、ビューを説明する人間が読める文字列に設定します。ビューコントローラに有効なナビゲーションアイテムまたはタブバーアイテムがある場合、このプロパティに値を割り当てると、それらのオブジェクトのタイトルテキストが更新されます。
私はその古いスレッドを知っていますが、これを共有することを考えましたUIVIewControler派生クラスの「init」メソッドに「self.title」を設定します。これは私にとってはうまくいきました!!