UIDocumentInteractionController больше не работает в iOS6

У меня есть приложение, которое делится с Instagram, созданным для iOS5, а теперь и в iOS6, совместное использование больше не работает, хотя canOpenURL возвращает true и код выполняется. Изображения сохраняются в папке документов приложения с .igo расширение. Это передается в Instagram с com.instagram.exclusivegram.

Код ниже, он вводит оператор if и отображает "здесь в", но не открывает диалоговое окно "Поделиться с", как это было в нижней части экрана.

        NSLog(@"%@", _imgToUpload);
        NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];
        if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
            uidController = [[UIDocumentInteractionController alloc] init];
            //imageToUpload is a file path with .igo file extension
            uidController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:_imgToUpload]];
            uidController.UTI = @"com.instagram.exclusivegram";
            uidController.delegate = self;
            CGRect navRect = self.view.frame;
            [uidController presentOpenInMenuFromRect:navRect inView:[UIApplication sharedApplication].keyWindow animated:YES];
            NSLog(@"here in");
        }

_imgToUpload также предоставляет правильный путь к файлу.

Спасибо ник

2 ответа

Решение

Просто провел некоторое тестирование и нашел решение. Не присутствует в ключевом окне.

[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];

Я проверил это, и это решит проблему.

Другая причина того, что контроллер взаимодействия с uidocument не работает в iOS6, заключается в том, что теперь используется новый лист действий / панель запуска (на ней показаны приложения, доступные для открытия документа). Мое приложение, которое работало нормально при запуске iBooks с iOS5, не удалось, потому что я запустил из viewDidLoad, который был слишком ранним, и я получил ошибку на текущем контроллере представления, "чье представление не находится в иерархии окон", поэтому я изменил свой код для выполнения выбора после задержки 1 секунда. Приложение теперь вызывает iBooks через новую панель.

Другие вопросы по тегам