CodeRed
CodeRed

Reputation: 63

Opening a new UIViewController when a link on a UIWebView is clicked

I found this thread which matches my problem: Clicking a link in UIWebView pushes onto the NavigationView stack

However, the following situations are different: Instead of using a navigationController, I am using a View Based application to manually switch to different viewcontroller when corresponding buttons are pressed. Rather than using links I am using onClick method to detect when a user clicks on something on a UIWebView and trying to open a new ViewController with a new UIWebView.

Will the same code work or do i have to make some changes?

Upvotes: 3

Views: 9518

Answers (2)

isolMAC
isolMAC

Reputation: 126

I think you may use the shouldStartLoadWithRequest as Omar posted. If the new viewcontroller has a webviewcontroller, then you should pass the url (or even the request) to the new viewcontroller to show the clicked URL.

Upvotes: 1

Omar Abdelhafith
Omar Abdelhafith

Reputation: 21221

You will have to do some modifications

1st: when onClick, you will have to redirect your current page to a new location This location for example will be MYLocation://GoThere

2nd: Update the shouldStartLoadWithRequest

-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

NSURL *url = request.URL;
NSString *urlString = url.absoluteString;

//Check if special link
if ( [ urlString isEqualToString: @"MYLocation://GoThere" ] ) {
    //Here present the new view controller
    MyViewController *controller = [[MyViewController alloc] init];
    [self presentViewController:controller animated:YES];

    return NO;
}

    return YES;

}

Upvotes: 12

Related Questions