Ios 如何从segue或目标视图控制器中访问执行segue的源视图?
我有一个自定义的Ios 如何从segue或目标视图控制器中访问执行segue的源视图?,ios,swift,segue,Ios,Swift,Segue,我有一个自定义的ContainerSegue继承自UIStoryboardSegue。在perform()方法中,我需要访问执行当前序列的ui视图。我该怎么做?可能吗 换句话说,我需要访问perform()方法中的发送方 segue类通常不跟踪sender,但由于您定义了名为ContainerSegue的自定义segue类,因此可以向其添加sender属性: class ContainerSegue: UIStoryboardSegue { // Add this property to
ContainerSegue
继承自UIStoryboardSegue
。在perform()
方法中,我需要访问执行当前序列的ui视图。我该怎么做?可能吗
换句话说,我需要访问perform()
方法中的发送方
segue
类通常不跟踪sender
,但由于您定义了名为ContainerSegue
的自定义segue
类,因此可以向其添加sender
属性:
class ContainerSegue: UIStoryboardSegue {
// Add this property to hold the sender
var sender: AnyObject?
override func perform() {
if let button = sender as? UIButton, title = button.currentTitle {
print("button title is \(title)")
}
// Add remainder of perform code here
}
}
然后在prepareforsgue
中设置:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let containerSegue = segue as? ContainerSegue {
containerSegue.sender = sender
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let dvc = segue.destinationViewController as? MyDestinationVC {
dvc.sender = sender
}
}
以类似的方式,如果要访问destinationViewController
中的sender
,请将sender
属性添加到destinationViewController
中,并在prepareForSegue
中进行设置:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let containerSegue = segue as? ContainerSegue {
containerSegue.sender = sender
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let dvc = segue.destinationViewController as? MyDestinationVC {
dvc.sender = sender
}
}
segue
类通常不跟踪sender
,但由于您定义了名为ContainerSegue
的自定义segue
类,因此可以向其添加sender
属性:
class ContainerSegue: UIStoryboardSegue {
// Add this property to hold the sender
var sender: AnyObject?
override func perform() {
if let button = sender as? UIButton, title = button.currentTitle {
print("button title is \(title)")
}
// Add remainder of perform code here
}
}
然后在prepareforsgue
中设置:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let containerSegue = segue as? ContainerSegue {
containerSegue.sender = sender
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let dvc = segue.destinationViewController as? MyDestinationVC {
dvc.sender = sender
}
}
以类似的方式,如果要访问destinationViewController
中的sender
,请将sender
属性添加到destinationViewController
中,并在prepareForSegue
中进行设置:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let containerSegue = segue as? ContainerSegue {
containerSegue.sender = sender
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let dvc = segue.destinationViewController as? MyDestinationVC {
dvc.sender = sender
}
}
如果这是某个模态表示不,它不是这个:(因此我们需要了解更多,您可以始终在prepareForSegue方法中设置控制器)如果这是某个模态表示不,它不是这个:(因此我们需要了解更多,您可以始终在prepareForSegue方法中设置控制器