0

UINavigationBar次のコードを使用してアイテムをカスタマイズしようとしています:

    CGSize size = [UIImage imageNamed:kGlobalNavigationBarButtonBackOrange].size;
    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
    [backButton setImage:[UIImage imageNamed:kGlobalNavigationBarButtonBackOrange] forState:UIControlStateNormal];
    [backButton setImage:[UIImage imageNamed:kGlobalNavigationBarButtonBackPressedOrange] forState:UIControlStateHighlighted];
    [backButton addTarget:self action:@selector(dismissViewController) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];

    UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Detail"];
    [item setLeftBarButtonItem:barButton];
    [item setTitleView:self.navigationItem.titleView];

    [self.navigationBar pushNavigationItem:item animated:YES];
    [self.navigationController pushViewController:vc animated:YES]; 

ただし、これを実行しても、ナビゲーション バーの外観は変わりません。

4

1 に答える 1

1

あなたがやろうとしていることは、vcView Controller内から行う必要があります。全体的なポイントは、新しいビュー コントローラーがスタックにプッシュされると、そのナビゲーション アイテムが要求され、それがナビゲーション バーの更新に使用されるということです。

- viewDidLoadビュー コントローラーで、バー ボタンを作成し、 として設定しますself. navigationItem. leftBarButtonItem

新しいナビゲーション アイテムを作成したり、ナビゲーション アイテムをナビゲーション バーにプッシュしたりする必要はありません。ビュー コントローラー フレームワークにこれを任せてください。

于 2013-05-06T15:05:45.150 に答える