1

タイトルがはっきりしない場合は申し訳ありませんが、ここで詳しく説明できれば幸いです。

MatchLineupViewControllerチームのラグビー選手を表す22個のボタンを表示するViewControllerがあります。ユーザーがこれらのボタンのいずれかをタップすると、次の方法でモーダルセグエがプログラムで呼び出されます。

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

次に表示されるモーダルViewControllerはと呼ばれSquadSelectViewControllerます。選択したプレーヤーオブジェクトをMatchLineupViewController、デリゲートとして機能しているに戻します。これは完全に機能します。

ただし、最初にセグエを送信したprofile_pictureオブジェクトに、返されたオブジェクトの属性を割り当てたいと思います。UIButton

編集-返されるオブジェクトは、次のコードに示すように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]);
}
4

1 に答える 1

1

次のように、メソッドのをセグエに転送できsenderます。showSquadSelector:

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

セグエのsenderは、セグエをトリガーしたボタンであるため、セグエからトリガーされたコードは、どのボタンがそれをトリガーしたかを認識しprepareForSegue:ますUIButton。これで、返された辞書の所定のキー(たとえば@"senderButton")に追加して、セグエから戻ったときに調べることができます。

于 2013-03-21T22:07:41.387 に答える