0

重複の可能性:
iOS でストーリーボードを使用して画像 ID を次のビューに渡すにはどうすればよいですか

私のコードは次のとおりです。

- (IBAction) buttonPressed:(id)sender
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; 
    DestinationViewController *destinationViewController = [storyboard instantiateViewControllerWithIdentifier:@"Destination"];

    destinationViewController.title = @"image property";

    [self.navigationController pushViewController:destinationViewController animated:YES];

    [destinationViewController release];    
}

しかし、私はエラーがあります:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x68a0840>) doesn't contain a view controller with identifier 'Destination''
 First throw call stack:
(0x13d4022 0x1565cd6 0x448fef 0x39f6 0x13d5e99 0x2114e 0x210e6 0xc7ade 0xc7fa7 0xc7266 0x463c0 0x465e6 0x2cdc4 0x20634 0x12beef5 0x13a8195 0x130cff2 0x130b8da 0x130ad84 0x130ac9b 0x12bd7d8 0x12bd88a 0x1e626 0x2902 0x2875)
terminate called throwing an exception(lldb) 

何かご意見は?

前もって感謝します。

4

3 に答える 3

1

View Controllerの識別子をIBで「Destination」に設定する必要があります。以下は、UIStoryBoard に関する Apple のドキュメントから抜粋したものです。

ストーリーボード ファイル内のビュー コントローラーを一意に識別する識別子文字列。ストーリーボード ファイルを構成するときに、Interface Builder で特定のビュー コントローラーの識別子を設定します。この識別子は、ビュー コントローラー オブジェクト自体のプロパティではなく、ビュー コントローラーを見つけるためにストーリーボード ファイルによってのみ使用されます。

ここに画像の説明を入力

于 2012-07-17T10:28:59.677 に答える
0

を使用できます。

(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

を使用してView Controller間でデータを渡す方法

myViewController *viewController = [segue destinationViewController];

目的地を指定します。

于 2012-07-17T10:35:19.060 に答える
0

識別子を正しく設定することに関する答えは、おそらくあなたの問題です。ただし、ストーリーボードへの参照を取得し、コントローラーをインスタンス化することで、一種のハッキーな方法でこれを行っているようです。

DestinationViewController代わりに、ビュー コントローラーとストーリーボード エディターの間にプッシュ セグエを作成して、次のようにします。

- (IBAction)buttonPressed:(id)sender {
    [self performSegueWithIdentifier:@"yourSegueIdentifierHere"];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    DestinationViewController *controller = [segue destinationViewController];
    [controller setImage: ... ];
}
于 2012-07-17T10:41:47.667 に答える