gpt4 book ai didi

ios - 将以编程方式调用的 segue 的发件人传递到目的地

转载 作者:行者123 更新时间:2023-11-29 13:16:51 24 4
gpt4 key购买 nike

抱歉,如果标题不是很清楚,但希望我能在这里详细说明。

我有一个 ViewController MatchLineupViewController,它显示 22 个按钮来代表球队中的橄榄球运动员。当用户点击这些按钮中的任何一个时,将在以下方法中以编程方式调用模态转场:

- (IBAction) showSquadSelector:(UIButton *)sender {
[self performSegueWithIdentifier:@"SeguePopupSquad" sender:sender];
}

随后显示的模态 ViewController 称为 SquadSelectViewController。它将选定的播放器对象传递回作为委托(delegate)的 MatchLineupViewController。这非常有效。

但是,我想将返回对象的 profile_picture 属性分配给首先发送 segue 的 UIButton

EDIT - 返回的对象是一个 NSDictionary,如下面的代码所示:

- (void) selectPlayer:(NSDictionary *)player forButton:(UIButton *)sender {
[sender.imageView setImage:[UIImage imageWithContentsOfFile:[player objectForKey:@"profile_picture"]]];
}

我该怎么做呢?如果您需要任何进一步的代码来理解我的要求,我可以提供。

非常感谢,克里斯

编辑 -

- (IBAction) showSquadSelector:(UIButton *)sender {
[self performSegueWithIdentifier:@"SeguePopupSquad" sender:sender];
}

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"SeguePopupSquad"]) {
SquadSelectViewController *ssvc = (SquadSelectViewController *) segue.destinationViewController;
ssvc.myDelegate = self;
ssvc.senderButton = sender;
}
}

- (void) selectPlayer:(NSDictionary *)player forButton:(UIButton *)sender {
[sender.imageView setImage:[UIImage imageWithContentsOfFile:[player objectForKey:@"profile_picture"]]];
NSLog(@"%@", [player description]);
NSLog(@"%@", [sender description]);
}

最佳答案

您可以将 showSquadSelector: 方法的 sender 转发到 segue,如下所示:

[self performSegueWithIdentifier:@"SeguePopupSquad" sender:sender];

segue 的 sender 将是触发 segue 的按钮,因此从 segue 触发的代码会知道是什么按钮触发了它:您的 prepareForSegue: 会具有正确的 UIButton。您现在可以将它添加到预定键(例如,@"senderButton")返回的字典中,并在从 segue 返回时检查它。

关于ios - 将以编程方式调用的 segue 的发件人传递到目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com