ストーリーボードにView Controllerを持たないUIViewControllerクラスから、ストーリーボードにView Controllerを持つUIViewControllerに表示を変更したい。このため、絵コンテにセグエはありません...
2 に答える
ちょうどこのような:
AppDelegate.mで、簡単な設定を行います。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
ViewController *sourceViewController = [[ViewController alloc] init];
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:sourceViewController];
[self.window setRootViewController:nav];
return YES;
}
ViewController
上記の例では、クラスを独自のクラスに置き換えます。sourceViewCntroller
- (IBAction) didPressMyButton {
NewViewController* newVC = [[[NewViewController alloc] init] autorelease];
[self.navigationController pushViewController:newVC animated:YES];
}
このアクションをストーリーボードのボタンに接続するか、任意の方法でビューの変更を埋め込みます。最初にUINavigationコントローラーをセットアップする必要があります。
あなたが何をしようとしているのか完全にはわかりませんが、セグエを使用せずにストーリーボードからビューコントローラーをロードする方法を尋ねていると思います。ロードされなかったビューコントローラーのメソッドからストーリーボード。
まず、ストーリーボードで、ロードするビュー コントローラーを選択し、Identity Inspector を開きます。ビュー コントローラーのストーリーボード ID を設定します。をロードしたいように見えるMapViewController
ので、ストーリーボード ID を に設定したとしますmap
。
コードでは、次のように View Controller をロードできます。
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
MapViewController *mapViewController = [storyboard instantiateViewControllerWithIdentifier:@"map"];
ビュー コントローラーへの参照を取得したら、そのプロパティを設定したり、メッセージを送信したりできます。その後、ナビゲーション コントローラーにプッシュしたり、表示したり、ウィンドウのルート ビュー コントローラーとして設定したりして、任意の方法で表示できます。