使用storyboard unwinds,如何从我返回的视图控制器中获取数据并在我返回的视图控制器中使用它?

时间:2013-03-20 21:36:09

标签: ios objective-c xcode uistoryboard uistoryboardsegue

我已经实现了所有内容,以及返回源视图控制器时触发的以下方法:

- (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'

我在上面的代码中做错了什么?几乎没有关于此的文档,因此很难自己搜索。

2 个答案:

答案 0 :(得分:3)

您使用的是错误的控制器。你想要segue的sourceViewController,而不是destinationViewController。否则,你正确地做到了。

答案 1 :(得分:0)

执行此操作的最佳方法是实现协议/委托。代理将处理来自目标视图控制器的任何请求,并将数据发送回源视图控制器。

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