#iphone #uiwebview #presentmodalviewcontroller
#iPhone #uiwebview #presentmodalviewcontroller
Вопрос:
Я использую presentModalViewController для моего представления «информация». Я добавил информационную кнопку в верхней части моего NavigationController и, когда она нажата, я вызываю этот метод
about *ab = [[about alloc] initWithNibName:@"about" bundle:[NSBundle mainBundle]];
ab.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController: ab animated: YES];
[ab release];
на моей информационной странице есть UIWebView, который содержит некоторые ссылки.
Используя это (и устанавливая делегат uiwebview как self)
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if (inType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}
если пользователь нажимает на ссылку, эта ссылка открывается в safari.
В чем проблема? что если вы сделаете это и вернетесь в приложение, вы окажетесь не в режиме info, а в режиме main … и (в этом проблема) если вы коснетесь информационной кнопки, ничего не произойдет! Вы не можете снова открыть info-view!
Почему?
Спасибо!
Ответ №1:
Попробуйте удалить [ab release]
. Это работает?
Комментарии:
1. Другие кнопки, они все еще работают после закрытия приложения. (кстати. ваш iPhone поддерживает многозадачность правильно, просто для уверенности …). Работает ли это, когда вы запускаете его в симуляторе?
Ответ №2:
Как насчет того, чтобы вместо отображения контроллера информационного представления как модального, просто поместить его в стек контроллера навигации? Должно иметь аналогичный эффект, но тогда вы должны все еще находиться на информационном экране при возвращении в приложение. Что-то вроде этого вместо presentModalViewController:animated:
вызова:
[self.navigationController pushViewController: ab animated: YES];
Комментарии:
1. есть, я знаю… но я хочу
presentModalView
эффекта … 🙂