0

1 つのクラスには、すべての友達とその ID を含むリストがあります。UITableView のアイテムをクリックすると、チャットが表示されます ( [self performSegueWithIdentifier: @"showChat" sender: self];)。しかし、ChatViewController クラスでは、FirstViewController から変数 userID にアクセスする必要があります。インターネットで見つけたものはすべて試しましたが、常にエラーが発生するか、変数が空です。FirstViewController では NSString なのでuserid、ChatViewController.m でこれにアクセスするにはどうすればよいですか? 変数を作って@publicみたり、readwrite などで試してみたのです@propertyが、うまくいきません。たとえば、次のようになります。

FirstViewController *fvc = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
userID = fvc.userID;

空の文字列を与えるだけです..

手伝ってくれてありがとう!

4

2 に答える 2

4

prepareForSegue:変数を渡すメソッドが必要です。

メソッドを次のように実装します。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"showChat"])
    {
        // Get reference to the destination view controller
        ChatViewController *cvc = [segue destinationViewController];

        // Set the object to the view controller here, like...
        cvc.userID = self.userID;
    }
}

セグエ経由で値を渡す方法については、こちらのチュートリアルを参照してください。

アップデート

同様の質問がすでにここで尋ねられています

于 2012-04-09T11:04:36.150 に答える