0

プログラムで作成したカスタマイズされた UINavigationcontroller があります。

問題は、UINavigationBar のデフォルトとして付属する戻るボタンにあり、IOS6 では表示されませんが、それを押すとアクションを実行できます。

注: 戻るボタンは IOS5 に表示されます。

これが私が使用した私のコードです

- (void)customizeNavigationController:(UINavigationController *)navController
{
    UINavigationBar *navBar = [navController navigationBar];
    [navBar setTintColor:keyNavBarTintColor];

    UIImageView *myImageView = (UIImageView *)[navBar viewWithTag:keyNavBarBackgroundImageTag];
    if (myImageView == nil)
    {
      UIImage *img = [UIImage imageNamed:@"image.png"];
      CGRect rect = CGRectMake(0, 0, navBar.frame.size.width, navBar.frame.size.height);
      myImageView = [[UIImageView alloc] initWithFrame:rect];
      [myImageView setContentMode:UIViewContentModeScaleAspectFill];
      [myImageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
      myImageView.image = img;
      [myImageView setTag:keyNavBarBackgroundImageTag];
      [navBar addSubview:myImageView];
      [myImageView release];
    }
    self.navImageView = myImageView;
}
4

1 に答える 1

0

これを試して:

UIImage *image = [UIImage imageNamed:kButtonBackInActive];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 39.0f, 44.0f)];
button.contentEdgeInsets = (UIEdgeInsets){.left=-8};
button.showsTouchWhenHighlighted = NO;

UIBarButtonItem * backbutton = [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease];
[self.navigationItem setLeftBarButtonItem:backbutton];
于 2012-10-01T11:08:47.750 に答える