iOS 6 で奇妙な動作が見つかりました。他のバージョンではテストしていません。ビューを使用して、単純なナビゲーション ベースのアプリケーションを作成しました。最初のビューのボタンをクリックすると、2 番目のビューがプッシュされます。次に戻るボタンをクリックすると、最初のビューに戻ります。どちらのビューも DetailViewConotrller からネストされています。
@implementation DetailViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *searchCancelButton = [[UIBarButtonItem alloc] initWithTitle:@"custom1" style:UIBarButtonItemStyleBordered target:self action:nil];
[searchCancelButton setBackgroundVerticalPositionAdjustment:3 forBarMetrics:UIBarMetricsDefault];
UIBarButtonItem *searchCancelButton1 = [[UIBarButtonItem alloc] initWithTitle:@"custom2" style:UIBarButtonItemStyleBordered target:self action:nil];
[searchCancelButton1 setBackgroundVerticalPositionAdjustment:3 forBarMetrics:UIBarMetricsDefault];
[self.navigationItem setRightBarButtonItems: [[NSArray alloc] initWithObjects:searchCancelButton, searchCancelButton1, nil] animated:NO];
}
@end
アニメーション パラメータ NO を指定してメソッドを呼び出し[self.navigationItem setRightButtonItems: animated:]
ましたが、ボタンはまだアニメーションしています。興味深いのは、このメソッドが 1 つの UIBarButtonItem だけで呼び出された場合、正しく動作し、アニメーションが表示されないことです。
このメソッドがそのように動作する理由は何ですか? これはバグですか、それとも何か問題がありますか? または、ナビゲーション アイテムのアニメーションを回避する方法について提案があります。