1

別のViewControllerを開くViewControllerがあります

[self.navigationController pushViewController:detailViewController animated:YES];

新しい VC には navBar に戻るボタンがありますが、最初の ViewController の navBar ボタンと同じ背景画像を与えることができません。私は試してみました:

UIImage *buttonImage = [UIImage imageNamed: @"Button.png"];
[self.navigationItem.backBarButtonItem setBackButtonBackgroundImage:buttonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self.navigationItem.backBarButtonItem setTitle:@"doesnt work either"];

しかし、うまくいきません。私は何を間違っていますか?ありがとうございました!

4

2 に答える 2

2

以下のコードスニペットを試してみてください。私にとってはうまくいきます:

UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(pop)];

self.navigationItem.backBarButtonItem = barBtnItem;

または、これを行うこともできます:

   UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 26, 26)];
   [backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
   [backButton setShowsTouchWhenHighlighted:TRUE];
   [backButton addTarget:self action:@selector(popViewControllerWithAnimation) forControlEvents:UIControlEventTouchDown];
   UIBarButtonItem *barBackItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
   self.navigationItem.hidesBackButton = TRUE;
   self.navigationItem.leftBarButtonItem = barBackItem;

コーディングをお楽しみください :)

于 2013-01-14T09:36:49.260 に答える
1

これを試して:

        UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
        [button setImage:[UIImage imageNamed:@"Button.png"] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(pushNav:) forControlEvents:UIControlEventTouchUpInside];
        [button setFrame:CGRectMake(0, 0, 32, 32)];
         self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

      -(void)pushNav {
           [self.navigationController popViewControllerAnimated:YES];  
      }
于 2013-01-14T09:37:29.960 に答える