0

我有一个导航控制器和 2 个视图控制器。第一个 View Controller 与一个名为 ViewController 的 UIViewController 相关联。第二个连接到一个名为 BookVC 的 UIViewController。BookVC 有一个 UITextField 并通过一个插座连接:

@property (strong, nonatomic) IBOutlet UITextField *textFieldContent;

连接是通过使用 segue 的按钮进行的​​。我想在两者之间传递一些数据,并使用以下代码失败:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
BookVC* nextPage = [[BookVC alloc] init];
nextPage = [segue destinationViewController];
nextPage.textFieldContent.text=@"Some content";
}

我应该如何在视图控制器之间传递数据?

4

2 回答 2

0

你不需要这一行:

BookVC* nextPage = [[BookVC alloc] init];

这将创建一个全新的 BookVC,然后您可以在下一行中覆盖它。

由于您使用的是 [segue destinationViewController],因此您应该一切顺利。当您转到 nextPage 时发生了什么?

于 2012-04-26T00:18:44.540 回答
0

我认为问题在于那个textFieldContent时候不存在。您需要添加一个属性,BookVC该属性可以保存您要放入的文本textFieldContent……我们称之为@property NSString *textFieldContentText。那么,

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    BookVC *nextPage = [segue destinationViewController];
    [nextPage setTextFieldContentText:@"Some content"];
    ...
}

然后,在-viewDidLoad方法中BookVC

- (void)viewDidLoad
{
    [textFieldContent setText:[self textFieldContentText]];
}
于 2012-04-26T02:15:42.730 回答