如何将后退图标添加到左侧栏按钮?

时间:2016-02-16 06:07:59

标签: ios swift

我是ios开发的新手,我正在尝试使用以下代码将当前控制器推送到下一个控制器

    self.navigationController?.pushViewController(controller, animated: true)

但是,当我进入下一个控制器时,左侧栏按钮上有一个后退图标(是的,这正是我想要的)。问题是,因为我打算执行展开segue动作,我必须手动将条形按钮项添加到新控制器并控制拖动到退出以执行展开segue动作。好吧没关系,事情就是当我调试它时,后面的图标丢失了!如何让后面的图标再次出现?我不想只是一个简单的文字,我想要一个图标来引导用户知道这是一个后退按钮

如果我没有将任何条形按钮分配到新控制器中,它将显示如下

http://s17.postimg.org/duy58azxp/Screen_Shot_2016_02_16_at_2_13_27_PM.png

如果我指定了条形按钮项目,并将标题指定为后面,则图标将显示为此

http://s27.postimg.org/n8yngdqcx/Screen_Shot_2016_02_16_at_2_13_11_PM.png

2 个答案:

答案 0 :(得分:1)

您不需要对按钮执行任何操作。您需要做的是以下内容:

  1. 创建一个新类并覆盖UINavigationControllerDelegate
  2. 添加方法navigationController:animationControllerForOperation:fromViewController:toViewController:
  3. 在上面提到的函数中,添加如下逻辑:
  4. func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
    {
        if fromVC is YourOtherViewController && toVC is YourMainViewController {
            return CustomAnimator()
        }
    
        return nil
    }
    

    CustomAnimator是UIViewControllerAnimatedTransitioning

    的子类
    1. 在故事板中设置导航控制器的委托。
    2. 要执行第4步,

      1. Object拖到视图的顶部栏中(它应该在First ResponderExit之间,如下所示:
        Object position
      2. 在“属性”检查器中,将新Object的类设置为您在第一步中创建的文件的名称。
      3. delegate的{​​{1}}插座连接到UINavigationController

答案 1 :(得分:0)

将此代码写入viewDidLoad()

navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "imagename"), style: UIBarButtonItemStyle.Plain, target: self, action: "leftbuttonclick")