一。场景模拟
我们有一个UINavigationController和一个UIViewController,在程序启动时初始化这两个,代码如下
HomeViewController *homeCon = [[HomeViewController alloc] init]; // 初始化uiviewcontroller UINavigationHomeBar *homeNavigation = [[UINavigationHomeBar alloc] initWithRootViewController:homeCon]; // 初始化uinavigationcontroller
接下来,当我们在uinavigationcontroller中加入左右按钮时没有效果,代码如下
// 这个是uinavigationcontroller的viewdidload中 UIBarButtonItem *bill = [[UIBarButtonItem alloc] initWithTitle:@"账单" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.rightBarButtonItem = bill;
运行看不见按钮
二。问题解决
- 先查看navigationitem的说明
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
说:在程序有需要时才创建,若有一个viewcontroller则可能屏蔽当前navigation中的item
2.解决方法
既然uinavigationcontroller中的item不能用,就需要使用uiviewcontroller中的item
即将创建按钮写入到uiviewcontroller的viewdidload中
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title = @"标题"; // 添加账单按钮 UIBarButtonItem *bill = [[UIBarButtonItem alloc] initWithTitle:@"账单" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.rightBarButtonItem = bill; }
三。navigation左右按钮颜色与标题颜色不一样的解决方案
在navigation的viewdidload中加入一句
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
即可
时间: 2024-10-12 21:06:54