How to customize iRate classes for "Rate this app" ios

550 views Asked by At

I don't want to use the uialertview for the popup, that gives the user a chance to rate the app on ios. I want to use a customized popup, but this is not showing up. Besides using the iRate classes from the internet, I also create a xib, that contains the popup, that I want to appear and I changed in .h from :NSObject to :UIViewController. I commented all the code for the uialertview and in the method promptForRating, that will be triggered, I make the uiview from the xib visible, but apparently the uiview is nil.

- (void)promptForRating
{
    rateView.hidden = NO;
}

Does anybody have a suggestion about making this popup show up?

1

There are 1 answers

1
Marc On BEST ANSWER

I think I get it now.. if you want to display a view, it has to be embedded in a view controller. Or in another view that is already embedded.

What you can do is

  • Access the sharedApplication of the UIApplication
  • Get all the UIWindows of that UIApplication (in reversed order, because your myView should be on top)
  • Select the UIWindow that is the default
  • Add your myView as a subview of the UIWindow

At least this is what SVProgressHUD is doing.

Here is some sample code

if(!myView.superview){
    NSEnumerator *frontToBackWindows = [[[UIApplication sharedApplication]windows]reverseObjectEnumerator];

    for (UIWindow *window in frontToBackWindows)
        if (window.windowLevel == UIWindowLevelNormal) {
            [window addSubview:myView];
            break;
        }
}

The first line is to ensure that your view is not visible atm (maybe unnecessary in your context). To dismiss the view, remove it from its superview.