【问题标题】:how to present view controller from appdelegate or scenedelegate in swift5?如何在swift5中从appdelegate或scenedelegate呈现视图控制器?
【发布时间】:2019-10-30 16:51:28
【问题描述】:

如何在 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()

【问题讨论】:

  • 但是如果您使用的是故事板,为什么要添加代码来显示它?无需代码即可在应用启动时自动显示主故事板。
  • “没有用”是什么意思?错误信息是什么?
  • 不,我想以编程方式从 appdelegate 或 scenedelegate 呈现视图控制器。 @rmaddy

标签: swift viewcontroller


【解决方案1】:

问题是您将窗口的根视图控制器初始化为实例化的情节提要视图。您需要像这样设置窗口的根视图:

    self.window?.rootViewController = ProfileViewController()

这会将其直接设置为 swift 文件,该文件应该是某种UIViewController,并且不使用情节提要。

【讨论】:

    【解决方案2】:

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

    window?.rootViewController = ViewController() 
    

    您是否在 SceneDelegate 中执行此操作?如果是这样,您可以使用 windowScene 初始化您的窗口

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

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      相关资源
      最近更新 更多