12

この関数を使用して、Xcode4.3のビューを切り替えています。

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

ページ間でいくつかのパラメータを渡したいのですが。どうやってやるの?

4

3 に答える 3

39

performSegueWithIdentifier:sender:ビューコントローラーが呼び出した後

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

新しいViewControllerに設定するいくつかのプロパティがあると仮定します。

if ([[segue identifier] isEqualToString:@"NextView"]) {
    MyViewController *myVC = [segue destinationViewController];
    myVC.propertyToSet = // set your properties here
}
于 2012-07-20T10:34:29.410 に答える
5

この質問には、View Controller間でデータを渡すことについて非常に適切で正しい説明があります。

ビュー コントローラ間でのデータの受け渡し

于 2012-07-20T10:28:56.907 に答える
3

これが Pfitz からの回答ですが、例を使用して、Objective-C を初めて使用する人にとって理解しやすいようにしました。

  1. destinationViewController.h ファイルで、変数のプロパティ設定を追加して、ソースの controller.m ファイルから値を「受け取る」ようにします。

    @property (nonatomic) int billIdReceivingVote;
    
  2. destinationViewController.h を sourceViewController.m ファイルにインポートします。

    // VOLViewController.m
    #import "VOLVoteViewController.h
    
  3. prepareForSegueメソッドを sourceViewController.m ファイルに追加し、変数を渡します

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        VOLVoteViewController *myDestinationViewController = [segue destinationViewController];
    
        // myDestinationViewController.variable = sourceViewController variabe
        myDestinationViewController.billIdReceivingVote = [self.idOfBillSelected intValue];
    }
    
于 2014-04-09T03:43:10.330 に答える