[英]Opening a new UIViewController when a link on a UIWebView is clicked
我发现这个线程符合我的问题: 点击UIWebView中的链接推送到NavigationView堆栈
但是,以下情况是不同的:我使用基于视图的应用程序,而不是使用navigationController,在按下相应的按钮时手动切换到不同的viewcontroller。 我使用onClick方法来检测用户何时点击UIWebView上的某些内容并尝试使用新的UIWebView打开新的ViewController,而不是使用链接。
相同的代码是否有效或者我必须进行一些更改?
你将不得不做一些修改
1st:当onClick
,您必须将当前页面重定向到新位置此位置例如是MYLocation://GoThere
第二步:更新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;
}
我想你可以像Omar发布的那样使用shouldStartLoadWithRequest。 如果新的viewcontroller有一个webviewcontroller,那么你应该将url(甚至是请求)传递给新的viewcontroller以显示点击的URL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.