-1

ここで考えられることはすべて試しました。

self.navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
self.navigationBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    self.navigationBar.topItem.title = @"Title";
    self.navigationItem.title = @"Title";
    self.title = @"Title";
    self.navigationBar.topItem.titleView.backgroundColor = [UIColor blueColor];
    self.navigationController.navigationBar.topItem.title = @"Title";
[self.view addSubview:self.navigationBar];

いずれかが機能することを期待してこれらすべてを試しましたが、どれも機能しませんでした。このナビゲーション バーのタイトルを変更するにはどうすればよいですか? これは、UIViewController の init メソッド内にあります。

4

4 に答える 4

1

カスタムNavigationBarのitems配列を設定する必要があります。指定したタイトルを持つ1つのアイテムを含む配列を渡す必要があります。

UINavigationBar *bar = [[[UINavigationBar alloc] init] autorelease];

UINavigationItem *navItem = [[[UINavigationItem alloc] initWithTitle:@"Title"] autorelease];
bar.items = [NSArray arrayWithObject:navItem];
于 2012-07-02T15:34:58.043 に答える
1

これは常に私にとってはうまくいきます:

self.navigationItem.title = @"Title";
于 2012-07-03T18:32:29.450 に答える
0

ナビゲーションコントローラーを使用している場合

self.title = @"My Title"; 

iOS 7でそれを行う必要があります。

于 2013-10-30T12:50:33.543 に答える
0

なぜそれをinitに入れたいのか正確にはわかりませんが、通常はこのコードをviewDidLoadに入れたいと思います。

ただし、コードの問題は、UINavigationBar を初期化するときに、項目配列に項目がないことです。したがって、実際にはメッセージを nil に送信していますが、これはプログラムをクラッシュさせませんが、何もしません。

これが私がすることです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    navigationBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [navigationBar setItems:[NSArray arrayWithObject:[[UINavigationItem alloc]initWithTitle:@"Title"]]];
    navigationBar.topItem.titleView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:navigationBar];
}
于 2012-07-02T15:47:43.513 に答える