Перейдите к предыдущему и следующему PDF-файлу? - PullRequest
1 голос
/ 25 мая 2010

Я получил просмотрщик PDF в uiwebview от Дэниела Барри 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 голосов
/ 26 мая 2010

хорошо, я опубликую это как другой ответ ...

В заголовочный файл добавить

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 и должен быть меньше длины массива). Затем вы можете изменить первую строку и позволить вызову метода обрабатывать / уменьшать значение переменной.

надеюсь, это поможет.

0 голосов
/ 26 мая 2010

Я думаю, что веб-просмотр должен показывать PDF-файлы с использованием запроса по умолчанию, нет необходимости иметь новую реализацию?

В любом случае ... Есть 2 метода, которые вы можете проверить и связать с вашей пред и следующей кнопкой

- (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

РЕДАКТИРОВАТЬ : О, я думаю, я сначала неправильно понял ваш вопрос ...

Просто создайте Массив URL-адресов PDF, которые вы хотите загрузить. Создайте переменную счетчика , в которой будет храниться значение индекса текущего открытого PDF-файла.

И, наконец, аналогично описанным выше методам создайте метод прямого и обратного и свяжите их с кнопками prev и next . В этих методах вы увеличиваете или уменьшаете счетчик на 1 и загружаете соответствующий индекс из массива [array objectAtIndex:counter], чтобы открыть следующий или предыдущий файл PDF.

Если вам нужна дополнительная помощь, дайте мне знать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...