2

すべてを実装しました。ソースビューコントローラーに戻ったときに起動する次のメソッドは次のとおりです。

- (IBAction)returned:(UIStoryboardSegue *)segue {
    ...
}

戻り元のビューのUITextFieldから値を取得し、ソースビュー(またはこのメソッドを呼び出すビュー)の値をそのUITextFieldの値に設定したいと思います。

私はこれを試しました:

- (IBAction)returned:(UIStoryboardSegue *)segue {
    AddTextViewController *returnedFromViewController = segue.destinationViewController;
    NSString *inputtedText = returnedFromViewController.textField.text;
    self.foo = inputtedText;
}

しかし、私はこのエラーを受け取ります:

[RootViewController textField]: unrecognized selector sent to instance 0x8dc0250
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RootViewController textField]: unrecognized selector sent to instance 0x8dc0250'

上記のコードで何が間違っているのですか?これに関するドキュメントはほとんどないので、自分の周りを検索するのは非常に困難です。

4

2 に答える 2

3

間違ったコントローラーを使用しています。sourceViewControllerではなく、セグエが必要ですdestinationViewController。そうでなければ、あなたはそれをすべて正しくやっています。

于 2013-03-20T21:41:52.487 に答える
0

これを行う最良の方法は、プロトコル/デリゲートを実装することです。デリゲートは、宛先View Controllerからの要求を処理し、データをSourceViewControllerに送り返します。

http://iosdevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html

于 2013-03-20T21:56:13.390 に答える