【发布时间】:2015-08-03 00:38:16
【问题描述】:
我正在尝试创建UINavigationController 的可重用子类。所以这是我的代码:
@interface MainNavigationController : UINavigationController
...
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationBar.barTintColor = primaryOrange;
self.navigationBar.tintColor = white;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"search"] style:UIBarButtonItemStylePlain target:self action:nil];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"menu"] style:UIBarButtonItemStylePlain target:self action:nil];
}
所以问题是导航栏的颜色发生了变化,但按钮没有出现。
我在这里错过了什么?
更新 我想在我的图像中为 NavigationController 使用相同的 NavigationController(按钮和颜色......):
更新 所以我以这种方式将我的 navugationController unn 子类化了:
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"search"] style:UIBarButtonItemStylePlain target:self action:nil];
viewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"menu"] style:UIBarButtonItemStylePlain target:self action:@selector(showMainMenu)];
}
- (id)initWithRootViewController:(UIViewController *)rootViewController {
self = [super initWithRootViewController:rootViewController];
if (self) {
rootViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"search"] style:UIBarButtonItemStylePlain target:self action:nil];
rootViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"menu"] style:UIBarButtonItemStylePlain target:self action:@selector(showMainMenu)];
}
return self;
}
这项工作,但唯一的问题是,当我按下视图而不是左侧有后退按钮时,我总是得到搜索图标,如何修复它(我希望左侧有父级的搜索按钮和返回按钮子视图)?
【问题讨论】:
-
不是
navigationItem属性为零吗? -
@Astoria 你能检查我的更新吗?
标签: ios objective-c cocoa-touch uinavigationcontroller uikit