0

ナビゲーション バーに問題があります。問題は、NavigationBar が持つ LeftBarButtonItem を次のようにスーパー viewController からオーバーライドしようとしていることです。

「スーパービューコントローラー」

UIImageView *logoApp = [[UIImageView alloc] initWithImage:[UIImageimageNamed:@"logo.png"]];
[logoApp setFrame:CGRectMake(5, 5, 55, 30)];
UIBarButtonItem *containingLogoApp = [[UIBarButtonItem alloc] initWithCustomView:logoApp];
self.navigationItem.leftBarButtonItem = containingLogoApp;

今、私は次のように別のviewControllerBでそれを上書きしようとしています:

UIImageView *backImg = [[UIImageView alloc] initWithImage:[UIImageimageNamed:@"back.png"]]; 
[logoApp setFrame:CGRectMake(5, 5, 17, 22)];
UIBarButtonItem *containingBackButton = [[UIBarButtonItem alloc]initWithCustomView:backImg]; 
self.navigationItem.leftBarButtonItem = containingBackButton;

これは同じコードで、アプリの初回実行時にのみ機能します。もう一度実行すると、割り当てられた画像が表示されViewControllerBなくなります。これは、プロジェクトにあるすべての画像で発生します。最初の実行後、シミュレーターでアプリを初めて実行したときにのみ機能します...まったく何も起こらないようです。

leftBarButtonItem を上書きするにはどうすればよいですか?

4

2 に答える 2

0
UIButton *backButton =  [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
[backButton setFrame:CGRectMake(0, 0, 50, 30)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
于 2013-09-13T11:49:57.437 に答える
0

このコードを試してください

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"dynamic_blue_left.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(rightSwipeClicked:)];
self.navigationItem.leftBarButtonItem = backButton;

それはうまくいっています..あなたに役立つかもしれません

于 2013-09-16T13:58:43.887 に答える