我想知道标题中的函数如何工作以及发送者参数。
假设单击按钮调用了performSegue方法,那么这是否也调用了prepareSegue方法?是否在performSegue方法之前但在按下按钮之后调用prepareSegue方法?
另外,这两个函数中的“sender”参数是否链接?如果我在performSegue方法中传入一个字符串作为sender,它会传输到prepareSegue方法中的sender参数吗?也就是说,如果我将performSegue方法中的sender参数设置为“Hi world”,那么prepareSegue方法中的sender参数也会是同一个字符串吗?
Thanks
实际上,有两种方法可以触发 segue。第一个是通过 Interface Builder 中 UI 元素上的操作,第二个是使用performSegueWithIdentifier:sender:
在你的代码中。我说“有效”,因为在幕后,当从故事板加载场景时,会配置一个动作处理程序,最终调用performSegueWithIdentifier:sender:
When performSegueWithIdentifier:sender:
被调用时,segue 对象被传递到视图控制器的prepareForSegue:sender:
功能。
如果 segue 是由 UI 元素上的操作发起的,则发送者将是该 UI 元素(即,如果它是 UI 元素上的操作连接)UIButton
那么sender
将是UIButton
实例)。
如果 segue 是由您的代码调用发起的performSegueWithIdentifier:sender:
那么sender
将是您传递的任何对象sender
。这可以是您的视图控制器、按钮、数组或任何东西。所以是的,如果你将“Hello World”传递给performSegueWithIdentifier:sender:
as the sender
值那么这将是sender
in prepareForSegue:sender:
从操作顺序来看:
-
performSegueWithIdentifier:sender
由您的代码或 UI 元素上的操作调用
- 如果你的视图控制器实现
shouldPerformSegueWithIdentifier:sender:
然后调用这个函数。如果这个函数返回false
然后segue被取消
- 创建了 segue 对象和目标视图控制器对象
- 如果你的视图控制器实现
prepareForSegue:sender:
然后调用这个函数。
- Once
prepareForSegue:sender:
返回,segue 完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)