2012-07-02 10 views
2

Проблема в том, что «успех» всегда возвращает мне false? Я не в чем проблема?UIDocumentInteractionController не сможет открыть документ в Ibook

мой код выглядит следующим образом:

UIDocumentInteractionController *docController = [[UIDocumentInteractionController interactionControllerWithURL:currentPDFPath] retain]; 

if (docController) 
{ 
    docController.delegate = self; 

    BOOL success = [docController presentOptionsMenuFromBarButtonItem:openInButton animated:YES]; 
    //BOOL success = [docController presentOpenInMenuFromBarButtonItem:openInButton animated:YES]; 
    NSLog(@"success: %d", success); 
    if(!success) 
    { 
     UIAlertView * noApps = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your iPad doesn't seem to have any other Apps installed that can open this document (such as iBooks)" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

     [noApps show]; 
     [noApps release]; 

    } 
} 
    [docController release]; 
+0

В чем состоит текущийPDFPath? –

+1

файл: //localhost/var/mobile/Applications/14DD059B-9969-4960-8E24-DC586A4302D1/Library/Caches/http-__wgsn.howoco.com_media_event_117_AW12_13_Tradeshow_seasonal_analysis_-_colour_1340296472.pdf%3F1340297029 –

+0

@PriyankaChhetri ли у найти решение для этого , пожалуйста, дайте мне знать, спасибо :) –

ответ

0

class reference documentation говорит:

Возвращаемое значение

YES если отображалось меню опций или NO, если это не было. Меню параметров может не отображаться в тех случаях, когда в меню нет соответствующих элементов.

Я думаю, что ваш %3F1340297029 Суффикс currentPDFPath могут мешать UTI матч.

Проверьте UTI имущество docController и установите на kUTTypePDF, если это nil.

+0

Спасибо за ответ. Моя проблема решена. Теперь «BOOL success» возвращается 1. Но я не могу открыть этот pdf-файл в iBook. –

+0

Теперь ошибка «*** Завершение приложения из-за неотображенного исключения« NSGenericException », причина: '- [UIPopoverController dealloc] достигнут, пока popover все еще отображается». –

0

Ваша проблема связана, вероятно, из-за того, что ваш docController уже выпущен. Вам нужно будет сохранить его, а затем автообновить его позже. Посмотрите здесь:

https://stackoverflow.com/a/3474825/523350

0

Я изменил код немного, не он работает для меня, я использую ARC, так что вы должны изменить его, чтобы соответствовать вашему коду не-ARC.

BOOL success = [self.documentInteractionController presentOpenInMenuFromRect:rect inView:self.view animated:YES]; 

       if (success == NO) { 
        NSLog(@"No application was found"); 
       } else { 

        NSLog(@"Applications were found"); 
       } 

BOOL либо возвращение YES или NO, YES это линия за = является TRUE и NO если линия FALSE.

--David

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

  • Нет связанных вопросов^_^