3

XCode 4.5 では、Storyboard 識別子が識別子ではなく、Storyboard ID と呼ばれるようになったという変更があると聞きました。私はそれを使用しようとしましたが、何も開始しません。いつも空白です。私は何を間違っていますか?

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

 HistoryViewController* historyVC = [storyboard instantiateViewControllerWithIdentifier:@"histSB"];

  [self presentViewController:historyVC animated:YES completion:nil];

また

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

また

 [self presentModalViewController:historyVC animated:YES];

ストーリーボードの設定については、スクリーンショットを参照してください。

ここに画像の説明を入力

4

1 に答える 1

3

これは、セグエが実用的でない場所のために、アプリで数回使用するものです。上記のコードとスクリーンショットから、次のように接続します。

HistoryViewController *historyVC = [self.storyboard instantiateViewControllerWithIdentifier: @"histSB"];
[self.navigationController pushViewController: historyVC animated:YES];

これは、iPad の popopver から View Controller を表示している場合に特に便利です。独自のナビゲーション コントローラーを含むビューをストーリーボードに追加します。

ここに画像の説明を入力

ナビゲーション コントローラーの左側にセグエが入っていないことに注意してください。次のコードは、これをポップオーバーに表示します。

HistoryViewController *historyVC = [self.storyboard instantiateViewControllerWithIdentifier: @"histSB"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: historyVC];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController: navigationController];

次に、これをセグエ経由で他のビュー コントローラーをナビゲーション コントローラーにプッシュするための基礎として使用できます (ビュー コントローラーの右側にあることに注意してください)。

[self performSegueWithIdentifier: @"WhateverComesNextSegue" sender: self];

それが役立つことを願っています。

于 2013-02-22T13:14:07.657 に答える