web-dev-qa-db-ja.com

UINavigationBar-プログラムでタイトルを設定しますか?

各タブで異なるビューを持つタブバーアプリケーションがあります。各ビューには、Interface Builderでタイトルが設定されたUINavigationBarがあります。 ViewDidLoadメソッドの句に基づいてタイトルを変更したいので、x {タイトルを変更する場合}。

私が試してみました self.title = @"title"、ただし、これはタブバー項目自体のタイトルを変更します。

それで、これはどのように行われますか?

77
AveragePro

次のようなコードを使用して、プログラムでタイトルを設定しました。

navBar.topItem.title = @"title";

navBarは、インターフェイスビルダーのナビゲーションバーにリンクされたIBOutlet UINavigationBarとして宣言されます。これは私のアプリで機能しました。ただし、タブバーは使用していませんでした。

NavBar.topItemがタブバー項目である場合、ナビゲーションバーに表示されるタイトルを変更する方法は、navBarのtopItemおよびタブバー項目が同じオブジェクト。

199
Greg

つかいます

self.navigationItem.title = @"the title";

設定としてnavBar.topItem.titleはすべての状況で機能するとは限りません。

71
ChrisP

これを使って :

    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
25
Muzammil

クラスがUIViewControllerのタイプである場合、viewDidLoadメソッドで指定されたタイトルを設定できます。

    [self setTitle:@"My Title"];
11
Augustine P A

ViewController.mのViewDidLoadに書き込むだけ

self.navigationItem.title=@"Hello World";

出力は次のとおりです。

enter image description here

7
iAnkit

IBOutletUINavigationBarを作成

navigationBar.topItem.title = @"Title";

お役に立てれば。

6
Shyam

私は次を使用しました:

self.navigationController.navigationBar.topItem.title = @"Title";

ただし、viewDidLoad内で呼び出されてもタイトルは変更されないため、ディスパッチブロックで呼び出す必要がありました。

2
Tod Cunningham

タイトルを表示するためにATすべてのNavigation ControllerデリゲートをNavigationバー自体に設定する必要があります。そうしないと、タイトルは表示されません。

2
Mike

ViewControllerまたはTableViewControllerの下のViewDidLoadでタイトルを設定することもできます。

_title = @"Title";

または

self.title = @"Title";
1
donmiller

Swift 5

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Title"
}
0
IMRAN RASHEED

これを試して、

self.navigationItem.title = @"Your title";
0
Kiran eldho