UrbanApps/Armchair

After viewing the modal view (rate, later, no) nothing..

Opened this issue · 7 comments

Hello,
I trying to work with your framework.
If I put showPromptIfNecessary in a normal view all work fine.
But if I put the same code inside a navigation controller, I saw the modal view asking me what I want to do, but nothing happens after pressing Rate.
What could I look at to fix this?
Many thanks,
Massimo

I noticed that the function getRootViewController return nil...

same as #43
If you reproduce, step by step find where the method return nil, before or after finding the window, etc...

I am experiencing the same issue, but getRootViewController doesn't return nil in my case.

However in my case, like the issue #43, the rating alert is shown after closing a view presented modally, which is embedded inside a UINavigationController which is itself embedded inside a UIPageViewController . @massimogreco Is your views architecture similar to that ? If yes, it could be a trail to investigate @phimage

Same problem.
Modal controller of Armchar appears successfully however nothing happens after pressing Rate.
How can this be fixed, i dont think it is related with a bug on my side.

Are you testing in the simulator?

Same problem -- I'm testing on a real device. getRootViewController() is returning nothing. I assume it has something to do with the fact that I don't use storyboards? Instead, I'm doing this in AppDelegate...

    window = UIWindow(frame: UIScreen.main.bounds)
    window?.windowLevel = UIWindowLevelNormal
    window?.rootViewController = navigationController
    window?.makeKeyAndVisible()

I'm calling rateApp() from my Settings UIViewController -- so no "timing" issue here.

Same thing here. Also calling rateApp() from my settings page, I'm using storyboard though.

As a workaround added these lines in the end of getRootViewController() function:

if let presentingController = UIApplication.shared.keyWindow?.rootViewController {
           if let topController = topMostViewController(presentingController) {
                return topController
            }
}
return nil