0
- (UINavigationController *)navigationController {

nav = [[UINavigationController alloc]
                               initWithRootViewController:[self demoController]];

UIImage *image;

// If Iphone/iPod Touch
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    // If iPhone 5 or new iPod Touch
    if([UIScreen mainScreen].bounds.size.height == 568){
        image = [UIImage imageNamed:@"nav.png"];
    } else{
        // Regular iPhone
        image = [UIImage imageNamed:@"nav.png"];

    }
}

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

[nav.navigationBar addSubview:imageView];

return nav;

}

leftBarButtonItemを追加しようとすると

  - (UIBarButtonItem *)leftMenuBarButtonItem {

UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];

[backButton setBackgroundImage:[UIImage imageNamed:@"main_menu.png"] forState:UIControlStateNormal];

UIBarButtonItem *barBackButtonItem = [[UIBarButtonItem alloc] initWithCustomView: backButton];

[backButton addTarget:self action:@selector(leftSideMenuButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

return barBackButtonItem;

 }

ナビゲーションに main_menu.png は表示されませんが、このコードをコメントする場合

      // [nav.navigationBar addSubview:imageView];

main_menu.png、問題の内容、nav.png が他の画像を表示している理由、SubView として追加されているため、他の左または右のバー ボタン項目を nav.png の上に表示するにはどうすればよいかを示します。

4

1 に答える 1

0

画像を画像ビューに追加して、それをサブビューとして追加するべきではありません。setBackgroundImage:forBarMetrics:代わりに、appearance デリゲートを呼び出すか使用して、ナビゲーション バーの背景画像を設定する必要があります。

于 2013-08-18T09:21:31.620 に答える