導覽列的按鈕,右邊的按鈕是可以自己隨意添加的。但左邊的返回按鈕怎麼定製?你會說,添加一個自己的按鈕唄!你可以試試看,這樣行不行。
正確的答案是重載UINavigationController類的pushViewController:animated方法。
#import <UIKit/UIKit.h>
@interface MyNavigationController: UINavigationController {
}
@end
#import "MyNavigationController.h"
@implementation MyNavigationController
-(void)popself
{
[self popViewControllerAnimated:YES];
}
-(UIBarButtonItem*) createBackButton
{
return [[UIBarButtonItem alloc]
initWithTitle:@"返回"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(popself)];
}
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[super pushViewController:viewControlleranimated:animated];
if (viewController.navigationItem.leftBarButtonItem== nil && [self.viewControllers count] > 1) {
viewController.navigationItem.leftBarButtonItem =[self createBackButton];
}
}
@end
使用MyNavigationController替換UINavigationController。或者直接建立一個UINavigationController的新類別——不過,這招太毒了。會影響到所有的導航控制器。做人還是留一線的好。
作者:kmyhy的專欄