I have intercepted URL opening by doing the following:
- (BOOL)openURL:(NSURL *)url{
URLViewController * web = [[URLViewController alloc] init];
web.url = url;
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:web];
[nav.navigationBar setTintColor:[UIColor blackColor]];
[nav setModalPresentationStyle:UIModalPresentationFormSheet];
[self.detailViewController presentModalViewController:nav animated:NO];
[web release];
[nav release];
return YES;
}
I have a UITextView in which detects URL and when clicking on the URL it opens up the link in a ModalViewController. Full detail on what’s going on can be seen here. Now the issue is, what if I want to open a URL in safari, is it still possible?
You should add an
overrideflag indicating whether you want to exercise control or not.So now all calls that you want to bypass can be sent like this.
Original Answer
This is what you should do. Put it before the
return YES;statement.