2012-03-05 4 views
3

У меня есть UIViewController с UIWebView, который отображает файл в формате pdf, в зависимости от того, какая строка была нажата раньше в UITableView. Теперь я хочу добавить кнопку, чтобы пользователь мог сохранить этот pdf-файл локально для автономного использования. Затем есть второй UITableView, который должен отображать имя сохраненного pdf и, щелкнув по нему, появится еще UIViewController и отображает сохраненный pdf на UIWebView в автономном режиме. Что было бы неплохо начать? БлагодаряСохраните PDF, который отображается UIWebView локально

ответ

5

Вы можете попробовать этот способ:
1) Добавить кнопку в View, содержащий UIWebView
2) При нажатии кнопки сохранить файл, показанный в UIWebView
(примечание: в прошивкой 5 вы должны сохранить данные, можно легко воссоздать или загрузить в каталог кэшей)

- (IBAction)buttonPress:(id)sender 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *cachePath = [paths objectAtIndex:0]; 
    BOOL isDir = NO; 
    NSError *error; 
    //You must check if this directory exist every time 
    if (! [[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) 
    { 
     [[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error]; 
    } 
    NSString *filePath = [cachePath stringByAppendingPathComponent:@"someName.pdf"] 
    //webView.request.URL contains current URL of UIWebView, don't forget to set outlet for it 
    NSData *pdfFile = [NSData dataWithContentsOfURL:webView.request.URL]; 
    [pdfFile writeToFile:filePath atomically:YES]; 
} 

3) на старте приложения вы должны проверить, какие файлы хранятся (IOS можно удалить каталог кэша, если не хватает места на iPhone)

+0

Спасибо. Где я могу найти сохраненные данные сейчас? – halloway4b

+1

В папке «Cache» (см. Переменную cachePath в коде). Когда вы захотите отобразить первую сохраненную папку кэша файлов PDF, проверьте, какие файлы существуют в этой папке. –

+0

Ok.I сказал, что это неправильно. Вы создали каталог с именем cachePath. Как я могу увидеть содержимое, хранящееся в этой папке? Извините, что я начинающий и в данный момент фокусируюсь и изучаю, как сохранять данные в приложении. – halloway4b

Смежные вопросы