Swift 3 Attempt to present whose view is not in the window hierarchy

Viewed 8631

This question has been asked many times but even after trying most of the possible things I am still unable to find a solution that works for me. Here is the error message.

Warning: Attempt to present on <0x7f8f29e17590> whose view is not in the window hierarchy!

Note: I am not using any navigation controller.

I am just presenting a view controller modally and I have a button on it for linkedIn sign up. But every time I click the linkedin button this error appears and I am unable to see the new linkedIn dialog although it works fine in other classes.

Most solutions recommend handling button click in viewDidAppear already tried that and it doesn't work.

I am using this code for opening linkedIn signup form

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!")
    })
2 Answers

In my instance, I was navigating to my home view, which had a sheet modifier. Once I removed the sheet modifier, the warning message went away. To maintain my sheet modifier, I created a separate view for it (below) and can now navigate to Home() directly, which was satisfactory for my requirements.

struct IntroSheetView: View {
    @State private var isPresented = true
    
    var body: some View {
        Home()
            .sheet(isPresented: $isPresented) {
                Text("Sheet content")
            }
    }
}
Related