Почему UIDocumentinteractioncontroller не показывает меню? - PullRequest
0 голосов
/ 29 июня 2011

Некоторое время я пытаюсь создать собственный титановый модуль.Я пытаюсь открыть PDF-файл в другом приложении.Кажется, все правильно (без предупреждений и т. Д.) Но при нажатии кнопки в de navBar меню не отображается.

Вот код метода, отображающего меню:

ENSURE_SINGLE_ARG_OR_NIL(args,NSDictionary);

TiViewProxy* viewAnchor = [args objectForKey:@"view"];
NSString* fileToOpen = [args objectForKey:@"url"];



NSLog(@"%@",fileToOpen);

if(viewAnchor != nil){
    NSLog(@"viewAnchor is not nil accessing controller");
    NSLog(@"%@",[TiUtils toURL:fileToOpen proxy:self]);

    CGRect rect = [TiUtils rectValue:args];
    self.controller = [[UIDocumentInteractionController interactionControllerWithURL:[TiUtils toURL:fileToOpen proxy:self]] retain];
    self.controller.delegate = self;

    BOOL menuDisplayed = [self.controller presentOpenInMenuFromBarButtonItem:[viewAnchor barButtonItem] animated:YES];

    //menuDisplayed = YES
    if(menuDisplayed)
    {
        NSLog(@"Menu is displayed");
        //This display's com.adobe.pdf
        NSLog(@"%@",self.controller.UTI);
    }
    else
    {
        NSLog(@"Menu failed to display");
    }
}

1 Ответ

0 голосов
/ 25 мая 2012

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

ENSURE_UI_THREAD_1_ARG(args);

Подробнее о:

https://wiki.appcelerator.org/display/guides/iOS+Module+Development+Guide#iOSModuleDevelopmentGuide-AddingSpecialCompilerDirectives

...