在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
swift是比较小众的开发语言,与苹果系列的APP对应。此外,swift还是一门新生的语言,因此,在swift学习的道路上,没有很多前辈帮忙采坑,我们在学习的时候必须长期总结积累经验。 在一个小项目中,我就被swift的unwinding segue搞糊涂了。 情况是这样的:
这个小程序写完后,效果应该是像记事本一样。可是当我点击tableView的时候,他会在后面附加值,而不是去修改原值。 exitFromThisViewController(segue: UIStoryboardSegue)函数是与exit对应的,所谓exit,就是(标蓝部分): 在定义好这个方法的时候,它的关联动作是空的,也就是函数左边关联标志是空心圈。当我按住control,让save按钮与exit关联时,会给出想要关联的方法,点击即可。在一段时间内,我一直以为这就是所有的回退过渡操作,但是我还是太天真了!因为我在另一个project里面测试了这个方法,发现点击按钮没有任何反应!也就是说,光有这个按钮和对应的exit与函数,不会对跳转页面有任何帮助! 之后为了测试这个方法,我建立了一个测试工程,操作与之前一样,代码很简单: 按理说,效果应该是在控制台上输出5行的test。可是我得到的结果是:
没错,就是什么都没有,这意味着这个函数压根没有被这个相应动作关联,那我之前那些操作是干啥的???!!! 以上就是问题的根源,接着,我又继续往下写: 这次是实打实的关联了响应动作,结果就是:控制台输出了5个backToFormerView。 再然后,我将之前关联的相应动作删掉,移到了想要跳转到的页面(假设页面A和页面B,这个按钮想从B跳转到A,原来exitFromThisViewController函数是写在B里的,现在写进A中)。 这次程序完美执行了,可是!看看控制台是这样的: 也就是说,exitFromThisViewController函数被执行了两次! 于是我就设置断点。没问题,的的确确执行顺序是: backToFormerView->backToFormerView.performSegue->exitFromThisViewController*2. 再之后,我又小心翼翼把performSegue函数注释掉,结果就成了自己想要的5个backToFormerView和5个test。 别以为这样问题就解决了。在我踌躇满志的将原来小程序中的performSegue函数注释掉的时候,神奇的事情发生了:页面之间跳转无法传值!程序没崩溃,我崩溃了。 到这为止,我说的有点乱。总结一下,就是
|
请发表评论