各タブで異なるビューを持つタブバーアプリケーションがあります。各ビューには、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"];
ViewController.mのViewDidLoadに書き込むだけ
self.navigationItem.title=@"Hello World";
出力は次のとおりです。
IBOutlet
のUINavigationBar
を作成
navigationBar.topItem.title = @"Title";
お役に立てれば。
私は次を使用しました:
self.navigationController.navigationBar.topItem.title = @"Title";
ただし、viewDidLoad内で呼び出されてもタイトルは変更されないため、ディスパッチブロックで呼び出す必要がありました。
タイトルを表示するためにATすべてのNavigation ControllerデリゲートをNavigationバー自体に設定する必要があります。そうしないと、タイトルは表示されません。
ViewControllerまたはTableViewControllerの下のViewDidLoadでタイトルを設定することもできます。
_title = @"Title";
または
self.title = @"Title";
Swift 5
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Title"
}
これを試して、
self.navigationItem.title = @"Your title";