0

Navigation Controller と 2 つの Views Controller があります。最初の View Controller は、ViewController という名前の UIViewController に関連付けられています。2 つ目は、BookVC という名前の UIViewController に接続されています。BookVC には UITextField があり、アウトレット経由で接続されています。

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

接続は、セグエを使用するボタンで行われます。私は2つの間でいくつかのデータを渡したいのですが、失敗する次のコードを使用しています:

-(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 に答える