IOS 改变导航栏返回按钮的标题实例详解

时间:2021-05-02

IOS 改变导航栏返回按钮的标题实例详解

前言:

下午又找到了一个新的方法 这个方法不错 暂时没有发现异常的地方。

新写的App中需要使用UINavigationController对各个页面进行导航,但由于第一级页面的title较长,在进入第二级页面后返回按钮leftButtonItem的title就会变得很长,对NavigationBar空间占用很大,而且不美观,于是使用代码对leftButtonItem的title文本进行修改,无论是设置self.navigationItem.leftBarButtonItem.title = @"返回";还是self.navigationItem.backBarButtonItem.title = @"返回";都没有效果,title文本始终不会发生变化。到网上乱搜一通后,得到了以下解决方法,相对来说比较简单,特记录如下:

在第一级页面的viewDidLoad方法中加入以下代码:

? 1 2 3 4 UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init]; temporaryBarButtonItem.title = @"返回"; self.navigationItem.backBarButtonItem = temporaryBarButtonItem; [temporaryBarButtonItem release];

也就是用一个新的按钮在进行导航前将原来的返回按钮替换掉就可以了。

可以如下设置 但是这样的缺点是那个按键会变成方形 可以添加图片来进行修改。

? 1 2 3 4 5 6 7 8 9 10 11 12 UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backToPrevious)]; self.navigationItem.leftBarButtonItem = backButton; [backButton release]; - (void)backToPrevious { [self.navigationController popViewControllerAnimated:YES]; }

添加图片的相关代码如下

? 1 2 3 4 5 6 7 8 9 UIButton *leftButton = [[UIButtonalloc] initWithFrame:CGRectMake(0, 0, 60, 40)]; [leftButton setTitle:@"返回"forState:UIControlStateNormal]; [leftButton setImage:[UIImageimageNamed:@"UINavigationBar.png"] forState:UIControlStateNormal]; [leftButton setImage:[UIImageimageNamed:@"UINavigationBar.png"] forState:UIControlStateHighlighted]; [leftButton addTarget:selfaction:@selector(leftAction:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *leftItem = [[UIBarButtonItemalloc] initWithCustomView:leftButton]; [leftButton release]; self.navigationItem.leftBarButtonItem = leftItem; [leftItem release];

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/djy1992/article/details/9127407

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章