导航到prev和下一个pdf文件?

时间:2010-05-25 11:48:56

标签: iphone pdf uiwebview

我在一个uiwebview中获得了一个pdf查看器,来自Daniel Barry http://github.com/danberry/PDF-Viewer并且效果非常好,它显示了一个可以向上和向下滚动的pdf文档。

现在我想只显示一个页面,并在pdf页面上显示一个菜单,其中包含prev和next按钮。任何人都可以帮助新手弄清楚如何? 谢谢!

#import "PDFViewController.h"   // PDF View Controller

@implementation PDFViewController

// Synthesize UI Element properties
@synthesize webView;
// Synthesize Variable properties
@synthesize pdfURL;

#pragma mark -
#pragma mark UIViewController methods
- (void)viewDidLoad {
    [super viewDidLoad];

    pdfURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"stuff pdf" ofType:@"pdf"]];
    [webView loadRequest:[NSURLRequest requestWithURL:pdfURL]];
    webView.transform = CGAffineTransformScale( webView.transform, 1.00, 1.00 );
}

#pragma mark -
#pragma mark Memory Management
- (void)dealloc {
    [webView release];

    [pdfURL release];

    [super dealloc];
}

@end

2 个答案:

答案 0 :(得分:0)

我认为webview应该使用默认请求显示PDF,不需要新的实现吗?

无论如何......有两种方法可以查看并链接到上一个和下一个按钮

- (void)goBack:(id)sender 
{
 if ([webView canGoBack]) {
  [webView goBack];
 }
}

- (void)goForward:(id)sender
{
 if ([webView canGoForward]) {
  [webView goForward];
 }
}

以下是UIWebView的文档,其中详细解释了这些方法:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIWebView_Class/Reference/Reference.html

编辑:哦,我想,我首先误解了你的问题......

只需创建要加载的PDF网址的数组即可。创建一个计数器变量,它将保存当前打开的PDF的索引值。

最后类似于上述方法创建前进和后退方法并将它们链接到 prev和next按钮。在这些方法中,您将计数器递增或递减1 并从数组[array objectAtIndex:counter]加载适当的索引,以便打开下一个或上一个PDF。

如果您需要更多帮助,请告诉我......

答案 1 :(得分:0)

好的我会发布这个作为另一个答案......

在头文件中添加

NSArray *arrURLs;
NSInteger *currentIndex;

并使数组成为属性(保留),在.m文件中合成它,并在 dealloc 中释放它。

- (void)viewDidLoad中使用所有URL初始化数组并将currentIndex设置为0.

arrUrls = [[NSArray alloc] initWithObjects:@"url", @"url", ..., nil];
currentIndex = 0;

添加两种方法,例如 prevPage nextPage ,并将它们链接到您的按钮。在那些方法中,你会做类似的事情......

// next page
currentIndex += 1;
NSString *str = [arrUrls objectAtIndex:currentIndex];
NSURL *url = [NSURL URLWithString:str];
[webView loadRequest:[NSURLRequest requestWithURL:url]];

我可能会创建另一种设置 currentIndex 的方法,并检查它是否在正确的范围内(例如,不应小于0且必须小于数组的长度)。你可以改变第一行,让方法调用处理变量的输入/递减。

希望这会有所帮助。