アプリの起動時に何らかの条件に基づいて rootVC を変更しようとしています。私の VC はすべてストーリーボードで作成されているため、次のようにしています。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
checkPhotoLibraryAccess()
return true
}
func checkPhotoLibraryAccess(){
if PHPhotoLibrary.authorizationStatus() == PHAuthorizationStatus.denied || PHPhotoLibrary.authorizationStatus() == PHAuthorizationStatus.notDetermined {
showPermissionVC()
} else {
showContainerVC()
}
}
func showPermissionVC (){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootVC = storyboard.instantiateViewController(withIdentifier: "askPermissionVC")
UIApplication.shared.windows.first?.rootViewController = rootVC
self.window?.makeKeyAndVisible()
}
func showContainerVC (){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootVC = storyboard.instantiateViewController(withIdentifier: "containerVC")
UIApplication.shared.windows.first?.rootViewController = rootVC
self.window?.makeKeyAndVisible()
}
コードと競合しないように、最初の VC を示す矢印をストーリーボードから削除しました。ただし、このエラーが発生し、シミュレーターの画面には何も表示されませんでした:
[アプリケーション] UIMainStoryboardFile 'Main' の既定のビュー コントローラーのインスタンス化に失敗しました。指定されたエントリ ポイントが設定されていない可能性があります。
info.plist から「メイン ストーリーボード ファイルのベース名」プロパティを削除しました。今回はエラーはなくなりましたが、まだ何も表示されません。私は何を間違っていますか?