繁体   English   中英

登录窗口不会在下一个视图控制器中打开

[英]Login Window won't open in next view controller Swift

在我的应用中,我的第一个视图控制器中有一个Facebook登录名,该登录名在具有LinkedIn登录选项的成功登录后会重定向到我的下一个视图控制器。

但是,按下LinkedIn登录按钮后,我收到此错误。

2016-10-17 23:00:42.588 Frieyo[86134:1636422] -canOpenURL: failed for URL: "linkedin://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
2016-10-17 23:00:42.593 Frieyo[86134:1636422] Warning: Attempt to present <UINavigationController: 0x7f9fa409ba00> on <Frieyo.TutorialViewController: 0x7f9fa2c04430> whose view is not in the window hierarchy!

我知道打开LinkedIn URL并不是问题,因为我的App Delegate正确处理了这些URL,并且当我将LinkedIn视图控制器设置为我的初始视图控制器时,登录有效!

显然,这些答案是: iOS:警告“试图呈现其视图不在窗口层次结构中的ViewController”并且其视图不在 窗口层次结构中的警告指示我应该将此方法放在我的viewDidAppear方法中; 但是,这无关紧要,因为成功登录后我将重定向到另一个视图。

问题 (我假设)位于视图堆栈内。 这就是我从第一个视图控制器过渡到LinkedIn VC的方式。

   let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
   let nextViewController = storyBoard.instantiateViewController(withIdentifier: "VerifyLinkedInViewController") as! VerifyLinkedInViewController
   self.present(nextViewController, animated:true, completion:nil)

我该如何正确地写以避免- “其视图不在窗口层次结构中!”

我刚刚遇到了这个问题,问题出在我的Facebook登录方法中,位于“ fromViewController”参数中。

为了修复它,我不得不引用我对方法进行了调用的View Controller,而不是实例化一个新的方法。

编辑-代码示例(这是现在为我工作的示例):

func performFacebookSignIn(viewController: UIViewController) {

    let facebookReadPermissions = ["public_profile", "email"]
    let loginManager = FBSDKLoginManager()

    loginManager.logInWithReadPermissions(facebookReadPermissions, fromViewController: viewController, handler: { (result: FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in
        if error != nil {
            print(error)
        } else if result.isCancelled {
            print("User cancelled login.")
        } else {
            print("Facebook sign in!")
        }
    })

在此之前,我没有在我调用该方法的另一个ViewController中使用“ viewController”参数,而是在“ fromViewController”参数中实例化了一个新的View Controller(我正在做:MyViewController()作为UIViewController),并且得到了这个“窗口层次结构”错误。

我希望它能以某种方式对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM