显示 iOS 共享表后未调用 viewWillDisappear

Posted

技术标签:

【中文标题】显示 iOS 共享表后未调用 viewWillDisappear【英文标题】:viewWillDisappear not called after showing iOS Share Sheet 【发布时间】:2014-08-13 21:16:17 【问题描述】:

在显示共享表并选择通过消息共享后,视图生命周期发生了一些非常奇怪的事情。当文本消息模式弹出时,viewWillDisappearviewDidDisappear 都不会触发。我知道当应用程序被发送到后台(用户按下主页按钮)或从以前的活动状态恢复时,您不会获得视图生命周期委托方法回调,但真正奇怪的是当您关闭消息模式 viewWillAppear 调用。

在这种情况下,出现/消失调用不能相互平衡这一事实给我带来了问题。有谁知道 Apple 文档中可以解释这一点的内容,或者我使用 UIActivityViewController 可能会遗漏的内容?

【问题讨论】:

【参考方案1】:

我仍然不知道为什么你不会得到消失回调,但得到一个出现回调,但是如果它最终导致其他人出现问题,知道你可以使用 @987654321 @ 的完成处理程序。这将在共享表关闭时触发(包括操作表以及全屏模式,例如当您通过消息共享时)。

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[ shareText, shareUrl ] applicationActivities:nil];
[activityController setCompletionHandler:^(NSString *activityType, BOOL completed) 
    if (completed) 
        NSLog(@"completed: %@", activityType);
    
    else 
        NSLog(@"not completed: %@", activityType);
    
];
[self presentViewController:activityController animated:YES completion:nil];

【讨论】:

以上是关于显示 iOS 共享表后未调用 viewWillDisappear的主要内容,如果未能解决你的问题,请参考以下文章

应用程序重启后未调用iOS OneSignal handleNotificationReceived回调

Flutter Bloc:更新后未调用 BlocBuilder,ListView 仍显示旧数据

Rider 2018.1 iOS 模拟器在构建后未运行

延迟后未调用 async_write_some 回调

用户对 facebook 进行身份验证后未调用应用程序打开 Url 方法

ios 应用更新后未收到 Firebase/APNS 通知