내 앱에서 TTOpenInAppActivity를 사용하여 UIActivityController 내부에서 "열기"작업을 삽입하고 있습니다. 그것은 내부 는 다음과 같이 작동ios 8 완료 블록이 호출되지 않았습니다.
일부 뷰 컨트롤러가 TTOpenInActivity가 이미 내장 된 UIActivityController를 제공
-(void)openWithAction
{
NSURL *fileURL = SOME_URL;
CGRect rect = SOME_RECT;
TTOpenInAppActivity *openInAppActivity = [[TTOpenInAppActivity alloc] initWithView:self.view andRect:rect];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[fileURL] applicationActivities:@[openInAppActivity]];
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
// Store reference to superview (UIActionSheet) to allow dismissal
openInAppActivity.superViewController = activityViewController;
// Show UIActivityViewController
[self presentViewController:activityViewController animated:YES completion:NULL];
} else {
// code for iPad, irrelevant
}
}
사용자가 버튼 "에서 열기"탭하면 다음과 같은 방법은 트리거된다.
- (void)performActivity
{
if(!self.superViewController){
[self activityDidFinish:YES];
return;
}
// Dismiss activity view
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
// iPhone dismiss UIActivityViewController
[self.superViewController dismissViewControllerAnimated:YES completion:^(void){
if (self.fileURLs.count > 1) {
[self openSelectFileActionSheet];
}
else {
// Open UIDocumentInteractionController
[self openDocumentInteractionControllerWithFileURL:self.fileURLs.lastObject];
}
}];
} else {
// code for iPad, irrelevant
}
}
}
앱이 iPhone 전용이므로 다음 코드를 실행해야합니다.
[self.superViewController dismissViewControllerAnimated:YES completion:^(void){
if (self.fileURLs.count > 1) {
[self openSelectFileActionSheet];
}
else {
// Open UIDocumentInteractionController
[self openDocumentInteractionControllerWithFileURL:self.fileURLs.lastObject];
}
}];
iOS7에서 모든 것이 잘 동작합니다. iOS8에서는 UIActivityController가 해제되고 아무 일도 일어나지 않습니다. 디버깅하는 동안 iOS8 완료 핸들러가 호출되지 않는 것을 감지 할 수있었습니다.
제발,이 동작에 대한 이유를 찾아서 제대로 작동하도록 도와주세요.
미리 감사드립니다.