我目前正在更新我的应用程序以与iOS 11兼容。
在我的应用程序中,我在我的AppDelegate didFinishLaunchingWithOptions中设置了rootViewController,如下所示:
self.window.rootViewController = MainViewController()
self.window.makeKeyAndVisible()
在我的MainViewController中,我确定在启动时VC应该是什么样的初始视图控制器
这是我的MainViewController的viewDidLoad():
override func viewDidLoad() {
super.viewDidLoad()
// main tab bar controller
self.initTabBarMainController()
// login page
self.initLoginViewController()
// checking the session
let tokenExpired = SessionManager.sharedInstance.isTokenExpired()
if Utilities.isLoggedIn() && SessionManager.sharedInstance.getSessionToken() != nil && !tokenExpired
{
self.addChildViewController(self.mainTabViewController!)
self.view.addSubview((self.mainTabViewController?.view)!)
} else {
self.addChildViewController(self.loginViewController!)
self.view.addSubview((self.loginViewController?.view)!)
}
self.setupNotifications()
}
然而,在iOS 11中,当我尝试运行它时。它只会启动应用程序并陷入黑屏。
注意:
答案 0 :(得分:1)
尝试使用以下代码使其可见:
self.window.rootViewController = MainViewController()
self.window.makeKeyAndVisible()
在MainViewController
的{{1}}:
viewDidLoad
答案 1 :(得分:0)
编辑:大家好,它似乎只出现在XCode 9模拟器上。我今天再次尝试使用iOS 11版本的不同手机。工作正常。
我通过处理AppDelegate中的所有内容而不使用容器视图来解决问题,该容器视图将决定loginVC是否会显示或MainTabVC
我现在会使用它,因为我认为XCode 9或iOS 11中有一个错误,它不允许我在一个单独的ViewController中处理它,我将它们添加为childViewController,就像我以前一样。
希望能尽快以最好的方式解决。 拥抱AppDelegate是一个眼睛。