UIBarButtonItem でこのカテゴリ メソッドを使用して、次のようにカスタム ボタンを作成します。
+ (UIBarButtonItem*)itemWithImage:(UIImage*)image forState:(UIControlState)controlState target:(id)target action:(SEL)action{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:controlState];
button.frame= CGRectMake(0.0, 0.0, 44, 44);
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 44, 44) ];
[v addSubview:button];
return [[UIBarButtonItem alloc] initWithCustomView:button];
}
次に、ボタンを作成し、次のようにビュー コントローラーのナビゲーション アイテムに割り当てます。
-(void)viewDidLoad{
[super viewDidLoad];
UIBarButtonItem * cancelButtonItem = [UIBarButtonItem itemWithImage:[UIImage imageNamed:@"Cancel"] forState:UIControlStateNormal target:self action:@selector(cancel)];
self.navigationItem.leftBarButtonItem = cancelButtonItem;
UIBarButtonItem * checkmarkButtonItem = [UIBarButtonItem itemWithImage:[UIImage imageNamed:@"checkmark_active"] forState:UIControlStateNormal target:self action:@selector(done)];
self.navigationItem.rightBarButtonItem = checkmarkButtonItem;
}
初めてView Controllerを作成してプッシュすると、ボタンは機能しますが、新しいView Controllerを作成してナビゲーションスタックにプッシュすると、ボタンが壊れます。何か案は?私はこれを徹底的にデバッグしましたが、アイデアがありません。