我在Xcode 11 Beta中遇到问题。
问题是我没有在window
文件中声明默认的AppDelegate
变量。
有人遇到同样的问题吗?
答案 0 :(得分:1)
现在在Xcode 11中,这是在SceneDelegate中完成的
答案 1 :(得分:1)
默认var窗口:UIWindow?现在已在SceneDelegate.swift中移动。要在Xcode 11中设置rootViewController,可以在SceneDelegate.swift文件中工作。在场景委托中,必须创建窗口实例和根视图控制器,如下所示:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// set or create your viewController here
let yourViewController = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(identifier: "yourViewController") as! YourViewController
// set the rootViewController here using window instance
self.window?.rootViewController = yourViewController
}
这个答案也很有帮助:Why is manually setup root view controller showing black screen?
希望它会对您有所帮助!
答案 2 :(得分:0)
就我而言,这就是全部。
test()
答案 3 :(得分:0)
我的方法:
首先,在AppDelegate中使用您要访问的视图控制器的类创建一个静态属性,如下所示
class AppDelegate: UIResponder, UIApplicationDelegate {
// MARK: Home
static var homeViewController: HomeViewController?
...
}
然后,在视图控制器中
// MARK: - Managing the view
override func viewDidLoad() {
super.viewDidLoad()
// Singleton
AppDelegate.homeViewController = self
...
}
使用方法:
extension UIViewController {
var homeViewController: HomeViewController? {
if let controller = self as? HomeViewController {
return controller
}
return AppDelegate.homeViewController
}
}