当应用程序启动时-启动SigninView -它是好的。接下来,如果成功的话-我需要showTripController()。功能起作用但什么都没有显示?有什么问题吗?
func showSigninView() {
let controller = self.window?.rootViewController!.storyboard?.instantiateViewControllerWithIdentifier("DRVAuthorizationViewController")
self.window?.rootViewController!.presentViewController(controller!, animated: true, completion: nil)
}
func showTripController() {
let cv = self.window?.rootViewController!.storyboard?.instantiateViewControllerWithIdentifier("DRVTripTableViewController")
let nc = UINavigationController()
self.window?.rootViewController!.presentViewController(nc, animated:true, completion: nil)
nc.pushViewController(cv!, animated: true);
}发布于 2016-04-27 16:46:56
首先,必须在使用窗口之前添加以下内容:
self.window.makeKeyAndVisible()要记住的另一件事是:
有时,keyWindow可能被nil rootViewController (在iPhone上显示UIAlertViews、UIActionSheets等)窗口所取代,在这种情况下,您应该使用UIView的window属性。
因此,不要使用rootViewController,而是使用它提供的最上面的一个:
extension UIApplication {
class func topViewController(base: UIViewController? = UIApplication.sharedApplication().keyWindow?.rootViewController) -> UIViewController? {
if let nav = base as? UINavigationController {
return topViewController(base: nav.visibleViewController)
}
if let tab = base as? UITabBarController {
if let selected = tab.selectedViewController {
return topViewController(base: selected)
}
}
if let presented = base?.presentedViewController {
return topViewController(base: presented)
}
return base
}
}
if let topController = UIApplication.topViewController() {
topController.presentViewController(vc, animated: true, completion: nil)
}发布于 2016-04-27 17:07:50
将showTripController的最后3行替换如下:
let nc = UINavigationController(rootViewController: cv));
self.window!.rootViewController = nchttps://stackoverflow.com/questions/36895419
复制相似问题