objective-c - iOS webview中的自定义BackButton
问题描述
我想在我的 iOS 网络视图(objective-C)的每个页面上创建自定义后退按钮。谁能建议我如何实施。在此先感谢我是 iOS Web 视图的新手,这就是为什么我直接发布我想要的这是我的代码:
#import "ViewController.h"
@interface ViewController () <UIWebViewDelegate>
@end
@implementation ViewController{
__weak IBOutlet UIImageView *logoImage;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.delegate = self;
NSString *urlString = @"https://www.anything.com";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
self.webView.hidden = YES;
if ([_webView canGoBack]) {
[_webView goBack];
}}
- (void)webViewDidStartLoad:(UIWebView *)webView {
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
self.webView.hidden = NO;
logoImage.hidden = YES;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"%@", error);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
我正在传递我网站的 url,我想在我的应用程序的每个页面上显示一个后退按钮,以便用户可以转到上一页。我还有一个问题,每当我最小化我的应用程序并从最近的应用程序中打开它时,它会重新启动,而我希望它从同一屏幕恢复
解决方案
对于UIWebView
,检查方法- (void)goBack;
。
对于WKWebView
,检查方法- (WKNavigation *)goBack;
并- (WKNavigation *)goBack:(id)sender;
退出。
更新
// init the back button
[btnBack addTarget:self action:@selector(backButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
- (void)backButtonTapped:(id)sender
{
[self.webview goBack];
}
假设您已经在完整代码中设置了 webview 和后退按钮(在导航栏或其他地方)。
当当前(标签)页面有历史列表并且当前页面 url 不是第一个和最后一个时,浏览器可以返回。
确保你真的想进入
goBack
,viewDidLoad
它需要一些时间来完成加载你指定的目标页面(https://www.anything.com
),就像你在浏览器中做的那样。webview的方法
loadRequest
是异步的,它将url请求推送到webview并立即返回。将 webview 的
goBack
方法绑定到您的自定义后退按钮,如上面的代码片段。尝试点击初始页面中的
https://www.anything.com
示例goBack
链接[self.webview canGoBack]
(backButtonTapped
如果需要,在方法的实现中设置断点。在您的下一个问题中删除
logoImage
或其他不相关的代码问题,这会使您的问题更加清晰和有用。
推荐阅读
- reactjs - Reactjs Portal 容器重新渲染
- swift - 如何将 UIPicker 的选择推送到 Firebase
- php - PHP:从 txt 文件中列出的 url 列表中抓取电子邮件
- google-sheets-formula - 我已经从一个站点导入了一段时间,那里的站点略有变化,截至 3 月我没有得到数据
- arrays - 指针和数组有什么区别?
- javascript - 如何让 gulpjs 使用源目录名称将图像重命名为不同的文件夹结构来复制图像?
- java - 任务应用程序执行失败:compileDebugAidl
- r - R - 在绘图上使用标题作为 x 轴
- reactjs - 为什么 ReactJS 更新状态没有按预期工作?
- python - Django:找不到页面,提出者:django.views.static.serve