如果标题不是很清楚,我很抱歉,但希望我能在这里详细说明。
我有一个ViewController MatchLineupViewController
,它显示22个按钮来表示团队中的橄榄球运动员。当用户点击这些按钮中的任何一个时,将通过以下方法以编程方式调用模态segue:
- (IBAction) showSquadSelector:(UIButton *)sender {
[self performSegueWithIdentifier:@"SeguePopupSquad" sender:sender];
}
然后显示的模态ViewController称为SquadSelectViewController
。它将选定的玩家对象传递给MatchLineupViewController
,profile_picture
充当代表。这非常有效。
但是,我想将返回对象的UIButton
属性分配给首先发送segue的- (void) selectPlayer:(NSDictionary *)player forButton:(UIButton *)sender {
[sender.imageView setImage:[UIImage imageWithContentsOfFile:[player objectForKey:@"profile_picture"]]];
}
。
编辑 - 返回的对象是NSDictionary,如下面的代码所示:
- (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]);
}
我该怎么做呢?如果您需要任何进一步的代码来理解我的要求,我可以提供它。
非常感谢, 克里斯
编辑 -
{{1}}
答案 0 :(得分:1)
您可以将sender
方法的showSquadSelector:
转发给segue,如下所示:
[self performSegueWithIdentifier:@"SeguePopupSquad" sender:sender];
segue的sender
将是触发segue的按钮,因此从segue触发的代码会知道哪个按钮触发了它:您的prepareForSegue:
将具有正确的UIButton
}。您现在可以使用预定的键(例如@"senderButton"
)将其添加到返回的字典中,并在从segue返回时进行检查。