gpt4 book ai didi

ios - Xcode 网页 View 。打开pdf文件时如何添加关闭/完成按钮

转载 作者:行者123 更新时间:2023-11-29 11:34:35 26 4
gpt4 key购买 nike

我有一个使用 WebView 的 iOS 小应用。

当我从 WebView 打开 PDF 文件时,无法关闭窗口或返回。如何在打开 PDF 文件时添加返回或关闭按钮。

URL to PDF file | PDF file is opened

#import "HomeController.h"

@interface HomeController ()

@end

@implementation HomeController

- (void)viewDidLoad {
[super viewDidLoad];
NSURL *myURL = [NSURL URLWithString:@"http://test.mysite.com"];
NSURLRequest *myRequest = [NSURLRequest requestWithURL:myURL];
[myWebView loadRequest:myRequest];
}

@end

已编辑

    //I create global BOOL isPdf in header file

@property (nonatomic, assign) BOOL isPdf;

//I make request in view did load

myWebView.delegate=self;

NSURL *myURL = [NSURL URLWithString:@"http://test.mysite.com"];
_isPdf = [myURL.lastPathComponent isEqualToString:@".pdf"];
NSURLRequest *myRequest = [NSURLRequest requestWithURL:myURL];
[myWebView loadRequest:myRequest];

NSLog(@"Run WebView with the URL");

//And then in my webview delegate method

- (void)webViewDidFinishLoad:(UIWebView *)webView{
if (_isPdf) {
UIBarButtonItem *backButton=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backButtonPressed)];
self.navigationItem.rightBarButtonItem=backButton;
NSLog(@"Show back button %i", _isPdf);
}else{
self.navigationItem.rightBarButtonItem=nil;
NSLog(@"Not show back button %i", _isPdf);
}
}

// Add backButtonPressed method

-(void)backButtonPressed{
//update the method according to your need
if (myWebView.canGoBack) {
[myWebView goBack];
}else{
[self.navigationController popViewControllerAnimated:true];
}
}

最佳答案

你需要做三件事

  1. 确认 WebView 代表
  2. 实现 webview 委托(delegate) webviewDidFinishLoad 方法
  3. 为按钮操作创建一个方法

首先确认view中的webview delegate是否加载

webview.delegate=self //(don't forgot to add the webview protocol <UIWebviewDelegate>)

第二次实现webview delegate

-(void)webViewDidFinishLoad:(UIWebView *)webView{
if (webView.canGoBack) {
UIBarButtonItem *backButton=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backButtonPressed)];
self.navigationItem.rightBarButtonItem=backButton;
}else{
self.navigationItem.rightBarButtonItem=nil;
}
}

第三个添加backButtonPressed方法

-(void)backButtonPressed{
//update the method according to your need
if (webview.canGoBack) {
[webview goBack]
}else{
[self.navigationController popViewControllerAnimated:true];
}
}

编辑

如果你只想在 pdf 上显示按钮,那么当你像你在 View 中所做的那样发出请求时,是否加载创建了一个全局 BOOL isPdf 并在你加载请求时设置它,如

 NSURL *myURL = [NSURL URLWithString:@"http://test.mysite.com"];
isPdf=[myURL.lastPathComponent isEqualToString:@".pdf"];

然后在您的 webview 委托(delegate)方法中:-

-(void)webViewDidFinishLoad:(UIWebView *)webView{
if (isPdf) {
UIBarButtonItem *backButton=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(backButtonPressed)];
self.navigationItem.rightBarButtonItem=backButton;
}else{
self.navigationItem.rightBarButtonItem=nil;
}
}

关于ios - Xcode 网页 View 。打开pdf文件时如何添加关闭/完成按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50498992/

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