【发布时间】:2018-03-21 13:25:21
【问题描述】:
我目前正在更新我的应用程序以兼容 iOS 11。
在我的应用程序中,我在 AppDelegate didFinishLaunchingWithOptions 中设置了 rootViewController,如下所示:
self.window.rootViewController = MainViewController()
self.window.makeKeyAndVisible()
在我的 MainViewController 中,我确定启动时应该作为初始视图控制器的 VC
- 如果不存在令牌 -> 转到 LoginViewController
- 如果令牌仍然有效 -> 转到 HomeViewController
这是我的 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 中,当我尝试运行它时。它只启动应用程序并卡在黑屏。
注意事项:
- 应用未挂起,手机未挂起。该应用似乎不再加载视图。
- 它转到了正确 ViewController 的 viewDidLoad()
- 我确信这是问题所在,因为当我尝试删除此代码并让应用程序在启动后转到其 MainInterface 时,没有问题。
【问题讨论】: