如何在Swift5中从AppDelegate或SceneDelegate中呈现视图控制器?

3
如何在Swift5中从Appdelegate或Scenedelegate呈现视图控制器? 我尝试过这个,但没有成功:
self.window = UIWindow(frame: UIScreen.main.bounds)
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                let initialViewController = storyboard.instantiateViewController(withIdentifier: "profile")
                self.window?.rootViewController = initialViewController
                self.window?.makeKeyAndVisible()

请参考以下链接中的示例:https://dev59.com/VVMH5IYBdhLWcg3wzzEe#58208876。 - rmaddy
但是如果你正在使用故事板,为什么要添加代码来显示它呢?主故事板不需要任何代码即可在应用启动时自动显示。 - rmaddy
1
“它没起作用”是什么意思?出现了什么错误信息? - Sweeper
我想在AppDelegate或SceneDelegate中以编程方式呈现视图控制器。@rmaddy - alina
2个回答

3
问题在于您将窗口的根视图控制器初始化为实例化的故事板视图。您需要像这样设置窗口的根视图:
    self.window?.rootViewController = ProfileViewController()

这会将它直接设置到Swift文件中,该文件应该是某种UIViewController,并且不使用故事板。


1
请确保初始化您的视图控制器。

window?.rootViewController = ViewController() 

你是在SceneDelegate里做这件事吗?如果是,你可以使用windowScene来初始化你的窗口。

来源: https://youtu.be/2oo0tO1E9ys


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接