显示 iOS 共享表后未调用 viewWillDisappear
Posted
技术标签:
【中文标题】显示 iOS 共享表后未调用 viewWillDisappear【英文标题】:viewWillDisappear not called after showing iOS Share Sheet 【发布时间】:2014-08-13 21:16:17 【问题描述】:在显示共享表并选择通过消息共享后,视图生命周期发生了一些非常奇怪的事情。当文本消息模式弹出时,viewWillDisappear
或 viewDidDisappear
都不会触发。我知道当应用程序被发送到后台(用户按下主页按钮)或从以前的活动状态恢复时,您不会获得视图生命周期委托方法回调,但真正奇怪的是当您关闭消息模式 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 仍显示旧数据