标签:
它一般是由一个左箭头加上一级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://www.cnblogs.com/wcLT/p/4942729.html