UIDocumentInteractionController не работает в симуляторе iPad (XCode 3.2.3) - PullRequest
3 голосов
/ 01 сентября 2010

Кажется, что UIDocumentInteractionController не работает в iPad Simulator («iPhone Simulator» версия 4.0, поставляется с XCode 3.2.3, с iOS версии 3.2).

У меня есть простой пример кодапредварительный просмотр PDF с использованием UIDocumentInteractionController.Работает на устройстве.На iPad presentPreview просто возвращает NO, методы делегата UIDocumentInteractionController's не вызываются.

Любой совет, как заставить это работать?

Ответы [ 2 ]

3 голосов
/ 08 сентября 2010

Подтверждение того же поведения здесь: вызов - (BOOL)presentPreviewAnimated: возвращает NO на симуляторе, но работает на устройстве.Спасибо за то, что указал на это, я просто потратил два часа, просматривая свой код снова и снова.Пока нет решения.

0 голосов
/ 20 ноября 2012

У меня действительно была эта проблема на версиях iOS выше, чем iOS 4.2, даже несмотря на то, что это была известная ошибка в те времена.

Проблема в том, что UIDocumentInteractionController будет хорошо работать на устройстве, нов симуляторе это вылетело бы.Я обнаружил, что проблема исчезла, когда я немного по-другому управлял памятью.Разница в том, что autoreleasing в методе делегата DidEndPreview.Вот ядро ​​моего кода:

-(void)createPDF
{
    UIDocumentInteractionController *dc;
    //....other code to generate pdf document
    dc = [[UIDocumentInteractionController interactionControllerWithURL:loadURL] retain];
    dc.delegate = self;

    [dc retain];

    [dc presentPreviewAnimated:YES];
}

//Delegate Methods
- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
{
    [controller autorelease];
}

Ранее я просто создал контроллер документа как обычный модальный вид и выпустил его после того, как представил его.

ПРИМЕЧАНИЕ.авто-релиз важен, вы просто рухнете с обычным вызовом релиза.

...