如何解雇OAuth视图?

时间:2015-06-11 17:27:47

标签: ios swift design-patterns oauth

我有一个通过Oauth登录到第三方API的应用程序,但在成功获取令牌后我需要一些帮助来删除我的授权视图。这就是我对IB的看法: enter image description here

应用程序以常规ViewController启动,如果没有authToken呈现AuthView:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    if (myVars.authToken == "" ) {
        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let authVC = storyboard.instantiateViewControllerWithIdentifier("AuthViewController") as! AuthViewController
        self.navigationController?.showViewController(authVC, sender: self)
    }

你点击授权,它在Safari中打开URL,你授权应用程序,它返回带有令牌的回调URL,该令牌返回到显示authVC的应用程序。但我似乎无法隐藏我的authVC。

任何建议都会受到很大的影响。

1 个答案:

答案 0 :(得分:0)

我正在为ViewController获取一个新实例,所以我无法解开它等等。在AppDelegate中,我得到了现有的导航控制器&图

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {
    let navigationController = application.windows[0].rootViewController as! UINavigationController
    let authView = navigationController.visibleViewController 

然后我可以在authView的正确实例上调用一个函数,除其他外,它会解开segue并让我回到我常用的导航流程。

这可能是一个更好的解决方案,但这是有效的。