[英]ios 8 completion block not called
在我的應用程序中,我使用TTOpenInAppActivity在UIActivityController中插入“打開方式”操作。 其內部的工作方式如下:
某些視圖控制器會提供UIActivityController以及已內置的TTOpenInActivity。
-(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完成處理程序。
請幫我找出這種現象的原因,並使其正常工作。
先感謝您。
在iOS 8中,當您點擊“打開方式”時,UIActivityViewController會自動關閉。 因此,當您調用self.superViewController dismissViewControllerAnimated:completion:
,viewController已被關閉,方法不執行任何操作(因此未調用完成功能)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.