回答:
ストーリーボードIDは、そのストーリーボードViewControllerに基づいて新しいViewControllerを作成するために使用できるStringフィールドです。使用例は、任意のViewControllerからです。
//Maybe make a button that when clicked calls this method
- (IBAction)buttonPressed:(id)sender
{
MyCustomViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
[self presentViewController:vc animated:YES completion:nil];
}
これにより、「MyViewController」という名前のストーリーボードViewControllerに基づいてMyCustomViewControllerが作成され、現在のView Controllerの上に表示されます
そして、あなたがあなたのアプリデリゲートにいるなら、あなたは使うことができます
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle: nil];
編集:スイフト
@IBAction func buttonPressed(sender: AnyObject) {
let vc = storyboard?.instantiateViewControllerWithIdentifier("MyViewController") as MyCustomViewController
presentViewController(vc, animated: true, completion: nil)
}
Swift> = 3の編集:
@IBAction func buttonPressed(sender: Any) {
let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewController") as! ViewController
present(vc, animated: true, completion: nil)
}
そして
let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)
self.storyboard
ストーリーボードからロードされた任意のビューコントローラーからアクセスできます。ビューコントローラーがストーリーボードから読み込まれなかった場合、そのプロパティはnilです。
エリックの回答に追加して、Xcode 8とSwift 3に合わせて更新するには:
ストーリーボードIDは、名前が意味することを正確に実行します。識別します。ストーリーボードファイルでビューコントローラーを識別するだけです。これは、ストーリーボードがどのビューコントローラーがどれであるかを知る方法です。
今、名前で混乱しないでください。ストーリーボードIDは「ストーリーボード」を識別しません。Appleのドキュメントによると、ストーリーボードは「アプリのユーザーインターフェースのすべてまたは一部のView Controllerを表します」。したがって、下の図のようなものがある場合、Main.storyboardというストーリーボードがあり、2つのビューコントローラがあり、それぞれにストーリーボードID(ストーリーボード内のID)を割り当てることができます。
ビューコントローラーのストーリーボードIDを使用して、そのビューコントローラーをインスタンス化して返すことができます。その後、好きなように操作して表示できます。Ericの例を使用するには、ボタンが押されたときに識別子「MyViewController」を持つビューコントローラーを提示する場合、次のようにします。
@IBAction func buttonPressed(sender: Any) {
// Here is where we create an instance of our view controller. instantiateViewController(withIdentifier:) will create an instance of the view controller every time it is called. That means you could create another instance when another button is pressed, for example.
let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewController") as! ViewController
present(vc, animated: true, completion: nil)
}
構文の変更に注意してください。
self.storyboard