首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示来自AppDelegate的两个AppDelegate

显示来自AppDelegate的两个AppDelegate
EN

Stack Overflow用户
提问于 2016-04-27 16:16:46
回答 2查看 460关注 0票数 1

当应用程序启动时-启动SigninView -它是好的。接下来,如果成功的话-我需要showTripController()。功能起作用但什么都没有显示?有什么问题吗?

代码语言:javascript
复制
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);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-27 16:46:56

首先,必须在使用窗口之前添加以下内容:

代码语言:javascript
复制
self.window.makeKeyAndVisible()

要记住的另一件事是:

有时,keyWindow可能被nil rootViewController (在iPhone上显示UIAlertViews、UIActionSheets等)窗口所取代,在这种情况下,您应该使用UIView的window属性。

因此,不要使用rootViewController,而是使用它提供的最上面的一个:

代码语言:javascript
复制
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)
}
票数 0
EN

Stack Overflow用户

发布于 2016-04-27 17:07:50

将showTripController的最后3行替换如下:

代码语言:javascript
复制
let nc = UINavigationController(rootViewController: cv));
self.window!.rootViewController = nc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36895419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档