Swift 3尝试显示其视图不在窗口层次结构中

时间:2017-09-18 11:24:20

标签: ios swift xcode

这个问题已被多次询问,但即使在尝试了大部分可能的事情后,我仍然无法找到适合我的解决方案。 这是错误消息。

  

警告:尝试出现在< 0x7f8f29e17590>其视图不在窗口层次结构中!

注意:我没有使用任何导航控制器。

我只是以模态方式呈现视图控制器,并且我有一个按钮用于linkedIn注册。但每次单击“确认”按钮时,都会出现此错误,但我无法看到新的linkedIn对话框,尽管它在其他类中工作正常。

大多数解决方案建议在viewDidAppear中处理按钮点击已尝试过,但它不起作用。

我正在使用此代码打开linkedIn注册表单

linkedinHelper.authorizeSuccess({ [unowned self] (lsToken) -> Void in

        print("success lsToken: \(lsToken)")
        self.requestProfile()
        }, error: { [unowned self] (error) -> Void in

            print("Encounter error: \(error.localizedDescription)")
        }, cancel: { [unowned self] () -> Void in

            print("User Cancelled!")
    })

1 个答案:

答案 0 :(得分:6)

我已经解决了问题,主要问题正是它所说的视图不在视图层次结构中。为了解决此问题,我们需要使用appDelegate对象将根视图控制器设置为当前视图控制器。因此,视图现在位于视图层次结构中,并且能够呈现更多视图。这是代码

let initialViewController = UIStoryboard(name: "Main", bundle:nil).instantiateInitialViewController() as UIViewController
let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
appDelegate.window?.rootViewController = initialViewController

请阅读此内容以获取更多信息。 https://stackoverflow.com/a/27608804/5123516