web-dev-qa-db-ja.com

UINavigationControllerタイトルの設定方法

アイテムの一般的なリスト用のコントローラー/ビューがあり、カスタムリストを表示するために拡張できます。リストとナビゲーションは正常に機能します。しかし、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"];
}

ナビゲーションバーにはまだタイトルとして「アイテム」があります:(

23
grilix

UIViewControllerにはtitleプロパティがあり、NavigationControllerによって表示されるのはそのプロパティです。したがって、新しいUIViewControllerをナビゲーションスタックにプッシュするときは、そのUIViewControllerのタイトルを適切なものに設定します。

あなたの場合、次のようになります。

[self setTitle:@"WhateverTitle"];
60

Swiftソリューションをお探しの方へ:

class CustomViewController: SuperViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "My Custom Title"
  }
}

titleは、ViewControllerに埋め込まれているUIViewControllerではなく、UINavigationControllerに設定する必要があります。

ドキュメント: UIViewControllerクラスリファレンス:titleプロパティ

10
fiedl

使用する

self.title = @"yourTitle";
5
Gyani

Swift

title = "whateverTitle"。これはUIViewControllerインスタンスプロパティです;いつでも呼び出す。

ドキュメント から:

宣言
var title: String? { get set }

ディスカッション
タイトルを、ビューを説明する人間が読める文字列に設定します。ビューコントローラに有効なナビゲーションアイテムまたはタブバーアイテムがある場合、このプロパティに値を割り当てると、それらのオブジェクトのタイトルテキストが更新されます。

4
SwiftArchitect

私はその古いスレッドを知っていますが、これを共有することを考えましたUIVIewControler派生クラスの「init」メソッドに「self.title」を設定します。これは私にとってはうまくいきました!!

0
infiniteLoop