iOS UINavigationController添加左右按钮不显示问题解决方

当我们用一个uiviewController初始化一个uinavigationcontroller时,再次添加左右按钮但不显示,下面提供解决方案

一。场景模拟

我们有一个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;

运行看不见按钮

二。问题解决

1.先查看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]];

即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值