码迷,mamicode.com
首页 > 移动开发 > 详细

iOS常见问题之动态修改UINavigationController的rightBarButtonItem的title

时间:2014-08-30 08:48:29      阅读:514      评论:0      收藏:0      [点我收藏+]

标签:os   io   ar   for   div   问题   cti   代码   html   

1.初始化

在viewDidLoad里,为navigationItem添加名称为“添加分栏”的按钮

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.
    
    self.navigationItem.rightBarButtonItem.title = @"添加分栏";
    [self.navigationItem.rightBarButtonItem initWithBarButtonSystemItem:UIBarButtonSystemItemUndo
                                                                 target:self
                                                                 action:@selector(myAction)];
    
    
}



2.试图更改按钮名称失败

尝试通过如下方式修改按钮的名称,但是失败了

-(void)onSelectionChanged:(id)selection
{
    self.navigationItem.rightBarButtonItem.title = @"编辑";
     
}


3.原因分析

为何直接设置backBarButtonItem的title无效呢?

查看苹果文档UIBarButtonItem的父类UIBarItem的title属性描述:

You should set this property before adding the item to a bar. The default value is nil.故无法修改其title,只能重置这个控件本身。

4.正确代码

4.1思路一

单单修改标题不行,是不是还应该再调用一下初始化方法呢?代码如下,最终还是不行啊,无语了

self.navigationItem.rightBarButtonItem.title = @"编辑";

[self.navigationItem.rightBarButtonItem initWithBarButtonSystemItem:UIBarButtonSystemItemUndo
								target:self
								action:@selector(myAction)];


4.1思路二

既然只改标题不起作用,那就把整个按钮换掉吧!
创建一个新的按钮,用这个新按钮替换self.navigationItem.rightBarButtonItem,这次总算可以了,谢天谢地!!!

UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemUndo
                                                                    target:self
                                                                    action:@selector(changeWellColumnAction)];
    temporaryBarButtonItem.title = @"编辑";
    self.navigationItem.rightBarButtonItem = temporaryBarButtonItem;
    [temporaryBarButtonItem release];

5.总结

该问题中思路一不成功的原因还是没有找到,思路二有没有什么副作用也不是很清楚,欢迎各路大神不吝赐教!!!

iOS常见问题之动态修改UINavigationController的rightBarButtonItem的title

标签:os   io   ar   for   div   问题   cti   代码   html   

原文地址:http://blog.csdn.net/wanglei9876/article/details/38932993

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!