zoukankan      html  css  js  c++  java
  • 设置返回按钮的标题

    它一般是由一个左箭头加上一级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) 

  • 相关阅读:
    【Networking】(转)一个非常好的epoll+线程池服务器Demo
    【算法】Logistic regression (逻辑回归) 概述
    【Linux】/dev/null 2>&1 详解
    单点登录与联合登录
    web项目报outmemory错误解决方案
    hadoop学习之HDFS
    ELK日志分析系统
    基于cookie共享的SSO中的遇到的问题
    oracle的隐式游标
    mysql截取字符串与reverse函数
  • 原文地址:https://www.cnblogs.com/wcLT/p/4942729.html
Copyright © 2011-2022 走看看