2013-07-04 2 views
0

Я создаю приложение, которое имеет веб-представление. Когда пользователь нажимает на ссылку или кнопку в веб-представлении, я хочу иметь возможность получить новый URL-адрес и отредактировать новый URL-адрес.shouldStartLoadWithRequest метод делегата никогда не назывался

mustStartLoadWithRequest должен делать трюк, но этот метод никогда не вызывается, когда я нажимаю на ссылку. Я не могу найти, почему это не работает.

Я прочитал где-то, что мне нужно добавить следующую строку:

webView.delegate = (id)self; 

Я попробовал это, и до сих пор получить тот же вопрос. Пожалуйста, помогите

AppDelegate.m

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSString *currentURL = [[request URL] absoluteString] ; 

    NSLog(@"Url: %@", currentURL); 
    return YES; 
} 

Controller.m

- (void)viewDidLoad 
{ 
    webView.delegate = (id)self; 
    NSString *tokenString = @"123"; 
    [super viewDidLoad]; 

    NSString *fullURL = [[NSString alloc] initWithFormat:@"http://192.168.1.69:8888/webapp/test.php?uid=%@", tokenString]; 
    NSURL *url = [NSURL URLWithString:fullURL]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:requestObj]; 
} 

ответ

1

Если Controller экземпляр добавляет себя в качестве делегата, то метод добавления к экземпляру AppDelegate никогда не будет называться.

Переведите метод shouldStartLoadWithRequest в ваш класс Controller.

+0

omg спасибо Wain Я провожу весь день на нем! RRRRRR – user2037696

0

Вы установили свой контроллер просмотра в качестве делегата веб-представления. Но тогда вы внедрили метод делегирования UIWebView в делете нашего приложения.

Попробуйте реализовать этот метод делегата в вашем контроллере вида. Контроллер вашего вида является делегатом вашего веб-представления.