我正在构建一个Master-Detail应用程序。 在详细信息视图中,UIWebView根据主服务器中选择的内容显示html内容。由于这个html还包含链接,我想在另一个视图中打开这些链接(一个uiwebview,有可能返回,重新加载等等 - 几乎是浏览器)。
我已将DetailViewController设置为DetailViewController.h中的UIWebViewDelegate
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate, UIWebViewDelegate>
在DetailViewController.m中
- (void)configureView
(detailHtml是显示所述HTML内容的UIWebView)我做
self.detailHtml.delegate = self;
此外,我有点击链接时触发的功能
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( inType == UIWebViewNavigationTypeLinkClicked ) {
[self.navigationController performSegueWithIdentifier:@"openCustomBrowser" sender:self];
return NO;
}
return YES;
}
将segue连接到详细视图控制器而不是导航控制器也不起作用。 故事板: http://s27.postimg.org/9hpgpmf1e/Bildschirmfoto_2014_03_11_um_18_02_19.jpg
我收到以下错误:
*** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener:
delegate: <NSUnknownKeyException> [<BrowserViewController 0x8a5b120> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key reload.
答案 0 :(得分:0)
我认为你需要puth inRequest作为发件人。
但为什么你需要创建新的视图控制器?您可以使用goBack
方法从那个UIWebView返回。只需在工具栏或navigationItem中添加相应的按钮。