5

何度押しUINavigationControllerても常に同じように表示させる方法はありますか?UIBarButtonItem

4

4 に答える 4

1

これを試して-

  1. サブクラス( CustomNavigationController) を作成UINavigationControllerし、ビュー コントローラをプッシュするために使用します。
  2. または で作成CustomNavigationControllerUIBarButtonItemます。&を追加します。initviewDidLoadtargetaction
  3. UINavigationControllerDelegateにデリゲートを実装し、デリゲート メソッドで各ビュー コントローラーの右または左のバー ボタン アイテムとしてCustomNavigationController設定します。barButtonYouCreated

使用する

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
     viewController.navigationItem.leftBarButtonItem = barButtonYouCreated;
}

また

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
于 2012-11-21T02:45:18.833 に答える
0

UINavigationControllerDelegate以下のように使用できます。

- (void)navigationController:(UINavigationController *)navigationController 
      willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

そして、このデリゲート メソッドでは、barButtonItem をナビゲーション バーに追加することを確認できます。

于 2012-11-21T03:18:15.547 に答える
0

プッシュ コントローラを含むグローバルUITabBarControllerインを作成しUINavigationControllerてから、プッシュ コントローラをnavigationbar非表示にすることができます。

于 2012-11-21T03:39:29.600 に答える
0

または、UINavigationController カテゴリを使用して、バック アイテムをカスタマイズして、何度プッシュされても、navigationController のバック アイテムに同じビューを設定するだけで済みます。何かのようなもの:

@implementation UIViewController (CustomNavigation)

- (void)setLeftBarButtonItem:(UIButton*)leftview
{    
    UIBarButtonItem *customItem = [[[UIBarButtonItem alloc] initWithCustomView:leftview] autorelease];
    self.navigationItem.leftBarButtonItem = customItem; 
    [(UIButton*)self.navigationItem.leftBarButtonItem.customView addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];
}
于 2012-11-21T04:14:38.690 に答える