2012-06-20 5 views
-3

В UIWebView 1 клик гиперссылкой затем откройте UIWebView 2, нажмите на гиперссылку в UIWebView 2 затем открыть UIWebView 3, нажмите на гиперссылку в UIWebView 3 затем открытый UIWebView 4 ....Как открыть мульти UIWebView

Как реализовать это?

я теперь открыть второй UIWebView в

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
self.otherWebView = [[UIWebView alloc] init]; 
    numberOfOpenedWebPage ++; 
    self.otherWebView.tag = numberOfOpenedWebPage; 

    self.otherWebView.delegate = self; 
    CGRect frame = self.view.frame; 
    self.otherWebView.frame = CGRectMake(frame.size.width, 0.0f, frame.size.width, frame.size.height); 
    [self.view addSubview:self.otherWebView]; 
    [otherWebView loadRequest:request]; 

Поскольку каждый новый WebView нужно делить метод делегата, поэтому я определил UIWebView вар как класс вар. Но я Donno, как создать больше shouldStartLoadWithRequest

Благодарности

+1

Вы можете идентифицировать веб-представление через переданный аргумент 'webView', тогда вы можете делать все, что хотите. – nhahtdh

+0

подробности пожалуйста? Теперь я запутался ... Ты имеешь в виду тег? Я сделал, но кажется неправильным ... –

+0

Можете ли вы код 'webView: shouldStartLoadWithRequest:'? – nhahtdh

ответ

1

Проблема с текущим кодом является то, что вы не проверить, где гиперссылка открыта с.

Вы должны переписать код в соответствии с этим псевдокодом:

// Declare a NSMutableArray in the .h file to store all UIWebViews that are loaded this way. 
// Assume that I can refer to it as self.allWebViews 
// Set tag of the first UIWebView to 0, and put it in self.allWebViews 

if (self.allWebViews.count <= webView.tag + 1) { 
    Initialize a new UIWebView 
    Set tag to self.allWebViews.count 
    Add it to self.allWebViews 
    Subview the UIWebView 
    Set it to load NSURLRequest passed in 
} else { 
    Get the UIWebView from the (webView.tag + 1) position of the self.allWebViews 
    Set the UIWebView to load the NSURLRequest passed in 
} 

// Never load hyperlink in the current web view 
return NO; 

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

+0

Спасибо за ваш ответ, я попробую позже, что бы я ни получил, обновит вас. –

+0

Проверено, работайте со мной, спасибо ~ @nhahtdh –

Смежные вопросы