Как настроить iRate классы для ios "Оценить это приложение"
Я не хочу использовать uialertview для всплывающего окна, которое дает пользователю возможность оценить приложение на ios. Я хочу использовать настраиваемое всплывающее окно, но оно не отображается. Помимо использования классов iRate из Интернета, я также создаю xib, который содержит всплывающее окно, которое я хочу отображать, и я изменил в.h с:NSObject на:UIViewController. Я прокомментировал весь код для uialertview и в методе promptForRating, который будет запущен, я делаю uiview из xib видимым, но, видимо, uiview - ноль.
- (void)promptForRating
{
rateView.hidden = NO;
}
У кого-нибудь есть предложение по поводу появления этого всплывающего окна?
1 ответ
Я думаю, я понял это сейчас... если вы хотите отобразить представление, оно должно быть встроено в контроллер представления. Или в другом представлении, которое уже встроено.
Что вы можете сделать, это
- Доступ к общему приложению UIApplication
- Получите все UIWindows этого UIApplication (в обратном порядке, потому что ваш myView должен быть сверху)
- Выберите окно UIWindow, которое используется по умолчанию
- Добавьте свой myView в качестве подпредставления UIWindow
По крайней мере, это то, что делает SVProgressHUD.
Вот пример кода
if(!myView.superview){
NSEnumerator *frontToBackWindows = [[[UIApplication sharedApplication]windows]reverseObjectEnumerator];
for (UIWindow *window in frontToBackWindows)
if (window.windowLevel == UIWindowLevelNormal) {
[window addSubview:myView];
break;
}
}
Первая строка - убедиться, что ваш вид не виден (возможно, не нужен в вашем контексте). Чтобы отклонить представление, удалите его из суперпредставления.