В проекте iPhone, над которым я сейчас работаю, одно из требований заключается в том, что когда пользователь нажимает на ссылку на странице, поддерживаемой UIViewController
, управляющей UIWebView
, тогда должен отображаться UIAlertView
.Веб-страница, на которую указывает ссылка, должна загружаться, только если пользователь не нажимает кнопку отмены оповещения.Еще одна деталь заключается в том, что этот конкретный контроллер является подклассом базового класса контроллера веб-представления, поэтому в некоторых случаях загрузка запроса должна быть отложена до этого суперкласса.Короче говоря:
1. User clicks on a link
2. Inspect link n webView:shouldStartLoadWithRequest:navigationType:
3. Depending on the link, show a UIAlertView
4. If the user presses Cancel, the alert is dismissed and the request is NOT loaded
5. If the user presses Continue, the alert is dismissed and the request is loaded
Я попытался переопределить webView:shouldStartLoadWithRequest:navigationType:
, а затем на основе ссылки показать предупреждение.Однако затем я понял, что любые события, происходящие при нажатии одной из кнопок оповещения, будут происходить при обратном вызове, например, alertView:clickedButtonAtIndex:
.Я попытался сделать это, и приложение заблокировано.
Я предполагаю, что есть способ сделать это, но он не может быть слишком простым, и я должен просто попытаться показать пользовательский, модальный UIView
, который выполняет то же самое, что я пытаюсь сделать спредупреждение.
Хиты будут полезны.