分割ビューコントローラを表示する前にモーダルビューコントローラを表示する必要があります。UISplitViewControllerはモーダルビューコントローラを表示しません
このフォーラムでは、モーダルビューコントローラをAppDelegateから提示する必要があることを示唆していますが、そうしないと何も起こりません。
残りのインターフェイスと同じストーリーボードにビューコントローラを設定してあり、ビューコントローラに識別子loginViewController
を与えました。私はAppDelegateのビューコントローラを次のように表示しようとしています。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
UISplitViewController *splitViewController = (UISplitViewController *) self.window.rootViewController;
UINavigationController *navigationController = splitViewController.viewControllers.lastObject;
splitViewController.delegate = (id) navigationController.topViewController;
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
LoginViewController *lvc = (LoginViewController *) [storyboard instantiateViewControllerWithIdentifier:@"loginViewController"];
lvc.modalPresentationStyle = UIModalPresentationFullScreen;
[splitViewController presentModalViewController:lvc animated:YES];
}
[_window makeKeyAndVisible];
return YES;
}
私はそうしても何も起こりません。エラーなし、モーダルビューコントローラなし、何もありません。アプリケーションは私の分割ビューコントローラを表示するだけです。
スプリットビューコントローラを表示する前にモーダルビューコントローラをどのように表示することができますか?
AppDelegateのモーダルビューコントローラを表示する前に '[_window makeKeyAndVisible] 'を呼び出すと、そのトリックが実行されました。 'performSelector'を実行する必要はなく、遅れて実行する必要もありませんでした。ご協力ありがとうございました。 – simonbs
yaあなたは@SimonBSですが、performSelectorを使う方がいいです。なぜなら、アプリが5秒以内に起動しなければ、ウォッチドッグタイマを殺すからです。 –