UIBarButtonItem
私はnavigationItemにカスタムを追加しようとしています。このボタンは、すべてのViewControllerで使用できます。viewDidLoad
そのため、それぞれのメソッドに追加する代わりに、viewDidLoad
メソッドで呼び出す別のメソッドのアプリケーションDelegateクラスに追加しようとしていますviewDidLoad
。これが私のコードです:
UIImage* image = [UIImage imageNamed:@"some-header-icon.png"];
CGRect frame = CGRectMake(0,0,image.size.width,image.size.height);
UIButton* hellBtn = [[UIButton alloc] initWithFrame:frame];
[hellBtn setBackgroundImage:image forState:UIControlStateNormal];
[hellBtn setShowsTouchWhenHighlighted:NO];
[hellBtn addTarget:self action:@selector(goToHell) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem* rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:hellBtn];
[self.nav.navigationController.navigationItem setRightBarButtonItem:rightBarButtonItem];
[hellBtn release];
[rightBarButtonItem release];
viewDidLoad
いずれかのviewControllerで同じコードブログを置き換えて変更した場合
[self.nav.navigationController.navigationItem setRightBarButtonItem:rightBarButtonItem];
に:
[self.navigationItem setRightBarButtonItem:rightBarButtonItem];
それは完璧に動作します。なぜですか?