iOS13 SceneDelegateがあるプロジェクトでpush遷移
はじめに
久々に新規プロジェクトを作ったら見慣れないSceneDelegateが追加されていた。
push遷移するための処理をAppDelegateに書くものだと思ったら、 こちらに書くことに気づかず時間がかかってしまった。
対応
willConnectToSessionにNavigationControllerの定義を書く
Main.storyboardにはStoryboardIDを設定しておく
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; ViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller]; navigationController.view.backgroundColor = [UIColor whiteColor]; navigationController.viewControllers = @[controller]; self.window.rootViewController = navigationController; [self.window makeKeyAndVisible]; }