gpt4 book ai didi

ios - 当应用程序 didFinishLaunching 时如何转到我想要的 Controller

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:22 25 4
gpt4 key购买 nike

当我启动我的应用程序时,我想转到自定义 view controller,但是 storyboard 中的默认第一个 controller:

我想在启动我的 app 时转到棕色 vc:

enter image description here

我的方法如下,但是出现黑屏 Unable to capture view hierarchy

1)在Info.plist中,删除Main storyboard file base name这一行

2)在我的Appdelegate.swift中:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

let sb:UIStoryboard = UIStoryboard.init(name: "Main", bundle: nil)

let nav: CustomNavController = sb.instantiateViewController(withIdentifier: "CustomNavController") as! CustomNavController

let red_vc:ViewController = sb.instantiateViewController(withIdentifier: "ViewController") as! ViewController

let green_vc:ViewController2 = sb.instantiateViewController(withIdentifier: "ViewController2") as! ViewController2

let brown_vc:ViewController3 = sb.instantiateViewController(withIdentifier: "ViewController3") as! ViewController3


nav.viewControllers = [red_vc, green_vc, brown_vc]

self.window? = UIWindow.init(frame: UIScreen.main.bounds)

self.window?.rootViewController = nav

self.window?.makeKeyAndVisible()

return true
}

结果得到黑屏屏幕:

the result

我错了哪一步?我怎样才能做好呢?启动我的应用程序时,我想转到棕色 vc


尝试 - 1

使用pushbrown vc,也是不行的:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

let sb:UIStoryboard = UIStoryboard.init(name: "Main", bundle: nil)

let nav: CustomNavController = sb.instantiateViewController(withIdentifier: "CustomNavController") as! CustomNavController

let red_vc:ViewController = sb.instantiateViewController(withIdentifier: "ViewController") as! ViewController

let green_vc:ViewController2 = sb.instantiateViewController(withIdentifier: "ViewController2") as! ViewController2

let brown_vc:ViewController3 = sb.instantiateViewController(withIdentifier: "ViewController3") as! ViewController3

//nav.viewControllers = [red_vc, green_vc, brown_vc]

nav.pushViewController(red_vc, animated: false)

nav.pushViewController(green_vc, animated: false)

nav.pushViewController(brown_vc, animated: false)

self.window? = UIWindow.init(frame: UIScreen.main.bounds)

self.window?.rootViewController = nav

self.window?.makeKeyAndVisible()

return true
}

最佳答案

您无需删除 Info.plist 中的主 Storyboard文件基名

在 AppDelegate 中:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

let mainStoryboard = UIStoryboard.init(name: "Main", bundle: nil)
let brownVC = mainStoryboard.instantiateViewController(withIdentifier: "brownVCIdentifier") as! BrownViewController
let navigationController = application.windows[0].rootViewController as! UINavigationController
navigationController.isNavigationBarHidden = true
navigationController.pushViewController(brownVC, animated: false)
return true
}

(或)

在 RedViewController(第一个 viewController)中:

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let brownVC = storyboard?.instantiateViewController(withIdentifier: "brownVCIdentifier") as! BrownViewController
navigationController?.isNavigationBarHidden = true
navigationController?.pushViewController(brownVC, animated: false)

}

Github 链接:

https://github.com/k-sathireddy/DirectNavigationSample

关于ios - 当应用程序 didFinishLaunching 时如何转到我想要的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41052405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com