简体   繁体   English

发件人在prepareForSegue:sender调用中是什么?

[英]What does sender is in prepareForSegue:sender call?

Suppose I perform a segue change when a button is tapped as given in the code below. 假设我按下面的代码在点击按钮时执行了segue更改。

- (IBAction)btnTapped:(id)sender {   
    [self performSegueWithIdentifier:@"login" sender:self];
}

I'm wondering the purpose of the "sender" part. 我想知道“发送者”部分的目的。 Does it make difference if I make the call with the parameter sender:sender , sender:@{@"foo",@"bar"} or sender:nil ?? 如果我使用参数sender:sendersender:@{@"foo",@"bar"}sender:nil进行呼叫,会有所不同吗?

Edit1: 编辑1:

Can I get this sender at the destination ViewController for instance at ViewDidLoad() function? 我可以在目的地ViewController处获取此sender吗,例如在ViewDidLoad()函数中?

The Apple's documentation : 苹果的文档

sender: 发件人:

The object that you want to use to initiate the segue. 您要用来启动segue的对象。

This object is made available for informational purposes during the actual segue. 在实际测试期间,此对象仅供参考

If you want to use sender object in the target UIViewController , use prepareForSegue:sender: method: 如果要在目标UIViewController使用sender对象,请使用prepareForSegue:sender:方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    {
        ....
    }
}

无论使用哪种方法,都设置了sender属性,因此您只需将(id)sender显式转换为(MyAnteriorView *)sender,就可以轻松地从前视图中检索信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM