iOS实现点击Back返回按钮跨过多个ViewController跳到指定的ViewController

iOS里有UINavigationViewController通过栈来管理UIViewController,如果你使用segue来指定UIViewController之间的跳转,那么系统默认点击NavigationBar的返回按钮会回到上一个在栈里的UIViewController,也就是执行了栈的pop操作。

那么问题来了,假如我的storyboard是这样的,ViewController A -> ViewController B -> ViewController C。在C里面点击了Back返回按钮,我希望能返回到A。

方案一,在C里面调用popToViewController(_:animated:)方法,可以跳到指定的UIViewController也就是该方法的第一个参数,只要这个UIViewController之前一直在栈中。

方案二,在A里面(目标ViewController)写unwind segue的action,通常格式是,
@IBAction func unwindName(unwindSegue: UIStoryboardSegue),方法名可以任意。然后在storyboard里找到ViewController C,C上方横条的有三个按钮一样的东西,第一个表示当前ViewController,第三个是Exit。点击第一个按钮,control加拖动到Exit按钮就可以指定unwind Action了,因为之前在目标ViewController里写过了,所以直接选择就行,然后设置好identifier,接下来在C里面适当的时机调用performSegue(withIdentifier: "identifier", sender: sender)就可以跳到目标ViewController了。

前面的两种方案都貌似可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值