私のappdelegateではglobUs.hasName
かどうかをチェックしたいと思います。アプリのEntry Point
を私のmain
ストーリーボードにしたいと思っています。アプリのEntry Point
が私のnewUser
ストーリーボードになるようにします。アプリケーションのエントリポイントを設定するにはどうすればよいですか?できない場合、この機能を実装する最も効果的な方法は何ですか?AppDelegateでApp Entryポイントをプログラムで設定する
答えて
エントリポイントがないことを考慮してください。次に、appDelegateで変数をテストし、それに応じて適切なストーリーボードを選択します。次に、そのストーリーボードからView Controllerを表示します。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if globUs.hasName {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "FirstMainVC")
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = new
self.window?.makeKeyAndVisible()
}
else {
let storyboard = UIStoryboard(name: "NewUser", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "FirstNewUserVC")
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = welcomeVC
self.window?.makeKeyAndVisible()
}
return true
}
このAppDelと同様のメソッドを使用すると、SIGABRTがスローされます。 「NSBundle Users/gabrielspound/Library/Developer/CoreSimulator/Devices/6CB76037-BA27-45DA-8671-01AAF78E93A6/data/Containers/Bundle/Application/0B5AC724」という名前のストーリーボード「OneStoryboard」は見つかりませんでした-BEF5-4DB6-A68F-8407A6ECF627/Social Justice.app>(ロード済み) '" UIStoryboardコンストラクタで" name: "フィールドの意味は何ですか?それは恣意的ですか、私はMain.storyboardのファイル名を使用する必要がありますか? –
これはうまくいきました、ありがとう! –
@GabeSpoundはい、ファイル名を使用しています – Shades
は
var sb = UIStoryboard(name: "OneStoryboard", bundle: nil)
/// Load initial view controller
var vc = sb.instantiateInitialViewController()
/// Or load with identifier
var vc = instantiateViewController(withIdentifier: "foobarViewController")
/// Set root window and make key and visible
self.window = UIWindow(frame: UIScreen.mainScreen.bounds)
self.window.rootViewController = vc
self.window.makeKeyAndVisible()
またはストーリーボードに手動セグエを試してみてください。手動でセグを実行するには、最初にストーリーボードに識別子付きのセグを定義してから、ビューコントローラでperformSegue(withIdentifier:sender:)
を呼び出す必要があります。
私は上記の答えのために残したコメントをチェックしてください、それはここにも関係します。 –
私はこれを有効にしましたが、他の方法はより効果的と思われます –
- 1. 私のAppはAppDelegateで停止する
- 2. ビューをプログラムで設定する
- 3. AppDelegateからプログラムで初期ViewControllerを設定するにはどうすればよいですか?
- 4. Swift 3:AppDelegateでUINavigationBar setBackgroundImageを設定する方法
- 5. Bindingを使ってEntryの値を設定する[Xamarin.Forms]
- 6. iOSでフルスクリーンモードをプログラムで設定する
- 7. ActiveMQでプログラムでトランスポートパラメータを設定する
- 8. symfony2でセッションライフタイムをプログラムで設定する
- 9. Windows 7でプログラム設定をVB.NETでプログラマチックに設定する
- 10. プログラムでページ設定オプションをExcelで設定する
- 11. Google App Engineエディタで設定
- 12. プログラムで設定アイデンティティ
- 13. アクティブなメンバシッププロバイダをプログラムで設定する
- 14. スクリムの色をプログラムで設定する
- 15. android:layout_columnをプログラムで設定する方法
- 16. Seleniumプロキシをプログラムで設定する
- 17. KendoUI:プログラムでグリッドソートを設定する
- 18. フィールド 'InputMask'プロパティをプログラムで設定する
- 19. Xamarin:TextViewのテキストをプログラムで設定する
- 20. LinearLayoutのボーダーをプログラムで設定する
- 21. UIToolBarをプログラムで設定する
- 22. プログラムでダイアログサイズを設定する
- 23. アンドロイド - LayoutParamsをプログラムで設定する
- 24. Log4NetLoggerFactoryAdapterをプログラムで設定する
- 25. WPF DataGrid - プログラムでRowDetailsを設定する
- 26. NSIndexPathをプログラムで設定する
- 27. プログラムでIIS6ワイルドカードアプリケーションマップを設定する
- 28. Drupal - Views。プログラムでフィルタを設定する
- 29. php.iniの値をプログラムで設定する
- 30. CollapsingToolbarLayoutイメージをプログラムで設定する
didFinishLaunchingWithOptions関数の中で、あなたの好みのviewControllerとしてself.window?.rootViewControllerを設定するだけです。 –