gpt4 book ai didi

ios - 如何仅在 UIWebView 中单击链接时启用后退按钮? (代码不会执行)

转载 作者:行者123 更新时间:2023-11-29 02:00:05 25 4
gpt4 key购买 nike

我正在努力使后退按钮仅在用户按下链接和/或 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com