Ответ 1
Просто проверил и нашел решение. Не указывайте в keyWindow.
[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];
Я протестировал это, и это устранит проблему.
У меня есть приложение, которое делится с 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
также предоставляет правильный путь к файлу.
Спасибо, Ник
Просто проверил и нашел решение. Не указывайте в keyWindow.
[uidController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];
Я протестировал это, и это устранит проблему.
Еще одна причина, по которой не работает iOS6 в контроллере uidocumentinteraction, заключается в том, что теперь используется новая панель действий/запуска (она показывает приложения, доступные для открытия документа). Мое приложение, которое отлично запускало iBooks с iOS5, потерпело неудачу, потому что я запустил из viewDidLoad, который был слишком ранним, и я получил сообщение об ошибке на текущем контроллере представления, чье представление не находится в иерархии окон, поэтому я изменил свой код на выполнение выбора после задержки 1 секунда. Приложение теперь вызывает iBooks через новую панель.