我需要自定义UINavigationBar的后退按钮。为了解决这个问题,我将UINavigationController子类化并编写了以下代码,这导致两个箭头并排:
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated {
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@""
style:UIBarButtonItemStylePlain
target:nil
action:nil];
[backItem setImage:[UIImage imageNamed:kBackButton]];
[backItem setImageInsets:UIEdgeInsetsFromString(kImageInset)];
viewController.navigationItem.backBarButtonItem = backItem;
}
在此代码中,箭头会在操作表显示时移动其位置。
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated {
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@""
style:UIBarButtonItemStylePlain
target:self
action:@selector(popViewControllerAnimated:)];
[backItem setImage:[UIImage imageNamed:kBackButton]];
[backItem setImageInsets:UIEdgeInsetsFromString(kImageInset)];
viewController.navigationItem.leftBarButtonItem = backItem;
}
创建后退按钮的最佳方法是: