1. ホーム
  2. iphone

[解決済み] UINavigationControllerに右ボタンを追加する方法は?

2022-04-13 21:12:26

質問

ナビゲーションコントローラーのトップバーに更新ボタンを追加しようとしていますが、うまくいきません。

以下はヘッダーです。

@interface PropertyViewController : UINavigationController {

}

以下は、私が試行錯誤している追加方法です。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
                                          target:self action:@selector(refreshPropertyList:)];      
        self.navigationItem.rightBarButtonItem = anotherButton;
    }
    return self;
}

解決方法は?

viewDidLoadで実行してみてください。UIViewController が起動されたとき、表示されるまでにまだかなりの時間がかかるかもしれません。

- (void)viewDidLoad {
  [super viewDidLoad];

  UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)];          
  self.navigationItem.rightBarButtonItem = anotherButton;
  // exclude the following in ARC projects...
  [anotherButton release];
}

なぜ現在機能していないのかについては、もっとコードを見ないと100%確実なことは言えませんが、initとビューの読み込みの間に多くのことが起こり、その間にnavigationItemをリセットするようなことをしているのかもしれません。