在我的appdelegate中,我想檢查是否globUs.hasName
。如果是這樣,我希望該應用的Entry Point
爲我的main
故事板。如果不是,我希望該應用的Entry Point
爲我的newUser
故事板。如何設置應用程序的入口點?如果我不能,那麼實現此功能的最有效方法是什麼?以編程方式在AppDelegate中設置應用程序入口點
回答
考慮沒有入口點。然後,在appDelegate中,測試您的變量並相應地選擇適當的故事板。然後從該故事板顯示視圖控制器。
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>(loaded)'「 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()
或者嘗試在故事板上手動SEGUE。要執行手動搜索,您必須首先在故事板中定義帶有標識符的搜索隊列,然後在視圖控制器中調用performSegue(withIdentifier:sender:)
。
查看評論我留在上面的答案,它也適用於這裏。 –
我得到了這個工作,但其他方法似乎更有效 –
- 1. 以編程方式爲應用程序設置播放設備
- 2. 以編程方式設置COM +應用程序的應用程序根目錄
- 3. 以編程方式爲應用程序設置Processor Affinity
- 4. 以編程方式打開設置應用程序(iPhone)
- 5. 如何以編程方式設置tabLayout的應用程序:tabBackground?
- 6. 如何以編程方式設置應用程序池標識
- 7. 以編程方式設置ipad應用程序背景?
- 8. 以編程方式將特定大小設置爲應用程序窗口
- 9. 在Windows應用程序中以編程方式設置圖像的位置
- 10. 如何以編程方式在Windows 8.1應用程序中設置起始頁
- 11. 如何以編程方式在mvc中將SlidingExpiration設置爲true應用程序
- 12. 如何在iOS應用程序中以編程方式設置wifi?
- 13. 以編程方式在IOS中設置動作監聽程序
- 14. 以編程方式點擊HTML href以更新應用程序
- 15. 以編程方式使用C#應用程序級聯窗口
- 16. 以編程方式設置iPhone設置
- 17. 通過AppDelegate以編程方式重新啓動iphone應用程序
- 18. 如何以編程方式在Qt窗口中心設置QWidget?
- 19. 以編程方式調整WPF應用程序的主窗口
- 20. 以編程方式在越獄應用程序中編輯Info.plist
- 21. 檢查它的viewController在IPhone應用程序中運行編程方式的appdelegate
- 22. 如何在android中以編程方式將應用程序設置爲默認應用程序
- 23. 應用程序入口點
- 24. Android TextField:以編程方式設置焦點+軟輸入
- 25. iOS - 如何以編程方式設置/更改/重置應用程序圖標?
- 26. 是否可以以編程方式設置應用程序的DPI?
- 27. 如何在IE擴展中以編程方式設置斷點?
- 28. 在windows應用程序中以編程方式在treeview中選擇節點
- 29. 以編程方式配置IPhone設置
- 30. 以編程方式設置UIScrollView方向
只需將self.window?.rootViewController設置爲您在didFinishLaunchingWithOptions函數中的首選viewController。 –