码迷,mamicode.com
首页 > 其他好文 > 详细

设置返回按钮的标题

时间:2015-10-16 11:57:16      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

系统在导航栏上提供默认的返回按钮,其样式如下所见:
技术分享

它一般是由一个左箭头加上一级ViewController的标题构成。如果我们想将这个标题文字修改成其它内容,甚至是设置为空,则需要额外想办法。
最省事的办法是将上一级ViewController的title修改为空或其它。但这会带来一个问题,即上一级ViewController的标题也会被修改,如果这个ViewController是位于TabBarController中,则TabBarItem的标题也会被修改。

还有一种办法是在viewDidAppear方法中使用例如这样的语句:
self.navigationController?.navigationBar.backItem?.title=”“

但这句代码只有在viewDidAppear方法中才好使。如果是放在viewDidLoad或者viewWillAppear中的话就不行了。
此外,用在viewDidAppear中的话,返回按钮的标题会有短暂的时间才会被修改,也就是说原来的标题文本在很短的时间内(零点几秒)仍然会显示。

此外就只有定制导航栏的左按钮了,用一张箭头图片作为按钮的背景图。这样做费时费力不说,效果也和系统提供的返回按钮不太一致。具体有两点:
一、左按钮的位置要比返回按钮的位置稍微靠后一点(仔细看才能区分这一点,大概有20个像素的差别)。
二、左按钮不提供默认的popViewController行为,需要我们自己编写按钮的事件代码。

这里介绍一种两全其美的方法,一不需要自定义左按钮,二完全使用系统默认的返回按钮,仅仅是按钮的标题被修改了。
代码如下:

let viewControllerArray = self.navigationController!.viewControllers
let previousViewControllerIndex = (viewControllerArray as NSArray).indexOfObject(self)-1

if (previousViewControllerIndex >= 0) {
if let previous = viewControllerArray[previousViewControllerIndex] as? UIViewController{
previous.navigationItem.backBarButtonItem = UIBarButtonItem(title: “”, style: UIBarButtonItemStyle.Plain, target: self, action: nil)
}
}
运行效果如下:
技术分享

这样,我们就成功地将返回按钮的标题文本设置为空字符串。

版权声明:本文为博主原创文章,未经博主允许不得转载。

设置返回按钮的标题

标签:

原文地址:http://blog.csdn.net/kmyhy/article/details/49175255

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