アプリの主要部分からビューコントローラーを提示したい場合があります。ビューコントローラーには、設定やヘルプなどが含まれています。これを行うには、それをnavコントローラー内に配置します。これは、UIBarButtonItemから呼び出すことができる小さなプラグインモジュールのようなものです。
さて、これは現在のストーリーボードに/である可能性があります、または別のものに、それは問題ではありません。
ストーリーボード全体でセグエラインスパゲッティの可能性を嫌うので、このようにしたいです。
これがその方法です。
- (IBAction)displaySettings:(id)sender
{
LOG_SELECTOR() // google that for extra goodness
// FYI, this can be done using a different storyboard like so.
/*
NSString * storyboardName = @"MainStoryboard_iPhone"; // possibly use device idiom?
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
*/
// To push a new set of scenes with a new Navigation Controller, it is done like this:
UINavigationController *settingsNC = [self.storyboard instantiateViewControllerWithIdentifier:@"Settings Nav Controller"];
OBSettingsUIViewController *settingsVC = [self.storyboard instantiateViewControllerWithIdentifier:@"Settings root"];
[settingsNC pushViewController:settingsVC animated:NO];
[settingsNC setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
// Present the view controller;
[self presentViewController:settingsNC animated:YES completion:NULL];
}
提示されたViewController(またはNavigation Controllerのサブクラス)では、UIBarButtonItemを使用して、次のようにViewControllerの提示された階層全体を閉じることができます。
- (IBAction)dismissThisVC:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
これがたくさんの人々の助けになることを願っています。乾杯。