为了账号安全,请及时绑定邮箱和手机立即绑定

unwind segue方式返回的实现方式

在第二个ViewController增加:

    @IBAction func close(segue: UIStoryboardSegue){

        print("closed")

    }

然后在storyboard中可以在Exit出现close,但是运行点击返回无效。

在第一个ViewController增加:

    @IBAction func close(segue: UIStoryboardSegue){

        print("restart")

    }

运行点击可以有效返回。根据打印的Log,实际只打印了restart,即只执行了第一个ViewController的方法。

再删除第二个ViewController的close,重新运行,还是可以正常返回。

这是Xcode的问题吗?……

正在回答

4 回答

为啥,我在A页面定义的close方法 。拖动推出后 是不能出现close方法的

0 回复 有任何疑惑可以回复我~
#1

Elenion

拖动后无法出现 close方法.... 我也是
2015-12-28 回复 有任何疑惑可以回复我~
#2

慕粉0009329727

我也是,已经在第一个viewcontroller里面定义了IBAction的方法,还是脱不出来close
2017-02-07 回复 有任何疑惑可以回复我~

这点也让我纠结了好久,如果不在目标页面中写那段代码,拖动推出后 是不能出现close方法的。但是调试确实走的是源文件中的方法。我也觉得这点是个bug

0 回复 有任何疑惑可以回复我~
#1

JasonAi

我觉的这只是一种设计模式,A页面中的Button关联到B页面,那B页面也应该有一种方式能关联到A页面,简单说,B页面的Exit相当于A页面中Button的作用,只是是默认指到A页面的close动作上,如果此时A页面没有重写close动作,自然也就无法关联成功。
2015-09-01 回复 有任何疑惑可以回复我~

个人觉得是因为segue是属于源页面的一个通道,通过这个通道可以获得目标页面的属性值。 返回键其实关联的是 源页面中segue的close方法。所以现象写在源页面中是合理的。

0 回复 有任何疑惑可以回复我~

加在seque来源的viewcontroller里面,第二个viewcontroller不需要添加close

0 回复 有任何疑惑可以回复我~
#1

Lyon0804

segue,打错了
2015-03-02 回复 有任何疑惑可以回复我~
#2

影飞云月 回复 Lyon0804

为什么会加在来源?而不是当前?
2015-03-04 回复 有任何疑惑可以回复我~
#3

大妖的千年一念 回复 影飞云月

同疑问
2015-03-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
使用Swift开发iOS8 App实战
  • 参与学习       62613    人
  • 解答问题       541    个

通过苹果最新Swift语言开发iOSApp,从零开始学习iOS的开发

进入课程

unwind segue方式返回的实现方式

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信