タブごとに異なるビューを持つタブ バー アプリケーションがあります。各ビューには、Interface Builder で設定されたタイトルの UINavigationBar があります。ViewDidLoad メソッドの句を元にタイトルを変更したいので、x { タイトルを変更 } の場合。
を試してみself.title = @"title"
ましたが、これによりタブ バー アイテム自体のタイトルが変更されます。
それで、これはどのように行われますか?
タブごとに異なるビューを持つタブ バー アプリケーションがあります。各ビューには、Interface Builder で設定されたタイトルの UINavigationBar があります。ViewDidLoad メソッドの句を元にタイトルを変更したいので、x { タイトルを変更 } の場合。
を試してみself.title = @"title"
ましたが、これによりタブ バー アイテム自体のタイトルが変更されます。
それで、これはどのように行われますか?
次のようなコードを使用して、プログラムでタイトルを設定しました。
navBar.topItem.title = @"title";
navBar は、インターフェイス ビルダーのナビゲーション バーにリンクされた IBOutlet UINavigationBar として宣言されます。これは私のアプリで機能しました。ただし、タブバーを使用していませんでした。
navBar.topItem がタブ バー アイテムである場合、navBar の topItem とタブ バー アイテムは同じオブジェクト。
使用する
self.navigationItem.title = @"the title";
設定navBar.topItem.title
がすべての状況で機能するとは限りません。
これを使って :
CGRect navBarFrame = CGRectMake(0, 0, self.tableView.frame.size.width, 44.0);
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:navBarFrame];
UINavigationItem *navItem = [UINavigationItem alloc];
navItem.title = @"Your Title";
[navBar pushNavigationItem:navItem animated:false];
[self.view addSubView:navBar];
また
self.tableView.tableHeaderView = navBar; etc
クラスがUIViewControllerのタイプである場合は、viewDidLoadメソッドで指定されたタイトルを設定できます。
[self setTitle:@"My Title"];
IBOutlet
の作成UINavigationBar
navigationBar.topItem.title = @"Title";
お役に立てれば。
私は以下を使用しました:
self.navigationController.navigationBar.topItem.title = @"Title";
ただし、それなしでviewDidLoad内で呼び出されたときにタイトルが変更されないため、ディスパッチブロックでも呼び出す必要がありました。