作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力使后退按钮仅在用户按下链接和/或 canGoBack = TRUE 时启用。我尝试在正文中使用 if 语句,但这没有用。然后我尝试使用我可以在网上找到的东西,但它仍然没有用。我的代码如下。我究竟做错了什么?谢谢!
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest: (NSURLRequest *)request navigationType: (UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked)
{
NSString *url = webView.request.URL.absoluteString;
NSURL *nsurl = [NSURL URLWithString:url];
NSURLRequest *nsrequest = [NSURLRequest requestWithURL:nsurl];
[webView loadRequest:nsrequest];
backButton.enabled = TRUE;
}
return TRUE;
}
最佳答案
如果您尚未设置 WebView 的委托(delegate),则不会调用shouldStartLoadWithRequest()。
为了使用 UIWebView,它通常设置为 View Controller 的导出属性,所以你应该有这样的东西:
IBOutlet UIWebView* webView;
webView 有一个委托(delegate)属性,需要设置到您的 View Controller ,您可以在 Storyboard中设置委托(delegate),但在代码中设置它更明确:
- (void)viewDidLoad
{
[super viewDidLoad];
self.webView.delegate = self;
99% 的情况下你只是设置委托(delegate),但 UIWebView 的委托(delegate)很有趣,因为它需要在完成后设置为 nil。所以添加这个:
- (void)viewDidUnload
{
[self.webView stopLoading];
self.webView.delegate = nil;
关于ios - 如何仅在 UIWebView 中单击链接时启用后退按钮? (代码不会执行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30469743/
我是一名优秀的程序员,十分优秀!