UrbanApps / Armchair

A simple yet powerful App Review Manager for iOS and OSX in Swift
MIT License
1.2k stars 137 forks source link

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

Open ghost opened 8 years ago

ghost commented 8 years ago

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

ghost commented 8 years ago

I noticed that the function getRootViewController return nil...

phimage commented 8 years ago

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

lucaswlt commented 8 years ago

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

csemresari commented 8 years ago

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.

coneybeare commented 7 years ago

Are you testing in the simulator?

jalbano commented 7 years ago

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.

kuchmiyalex commented 7 years ago

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