objective-c - 单击 UIWebView 上的链接时打开新的 UIViewController

标签 objective-c ios xcode uiviewcontroller uiwebview

我发现这个线程符合我的问题:Clicking a link in UIWebView pushes onto the NavigationView stack

但是,以下情况不同: 我没有使用导航 Controller ,而是使用基于 View 的应用程序在按下相应按钮时手动切换到不同的 View Controller 。 我没有使用链接,而是使用 onClick 方法来检测用户何时单击 UIWebView 上的某些内容并尝试使用新的 UIWebView 打开新的 ViewController。

相同的代码可以工作还是我必须做一些更改?

最佳答案

你将不得不做一些修改

第一: 当 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;

}

关于objective-c - 单击 UIWebView 上的链接时打开新的 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10959456/

相关文章:

objective-c - 我的 OS X 应用程序如何接受来自 Photos.app 的图片文件的拖放操作?

objective-c - 何时使用(或不使用)委托(delegate)

iphone - UIImage 未加载但文件存在

ios - 在外部屏幕和设备上播放 AVPlayer 流

ios - 如何在我的 SwiftUI 应用程序中初始化我的 ViewModel

objective-c - 设置 windowScriptObject 时永远不会调用 isSelectorExcludedFromWebScript

ios - Sinch 调用 header 在推送有效负载中收到,但在调用对象中为零

ios - 强制小写 - ios swift

ios - xcode12 issus : ld :building for iOS Simulator,,但链接到为iOS构建的目标文件中,针对架构arm64的文件 'xxx.framework/xxx'

javascript - 在 iOS Safari 上借助 getUsermedia 访问麦克风