我正在使用UIActivityViewController。当用户将我的应用程序发送到iPhone上的后台时(当他们按下主屏幕按钮等时),我需要删除生成的UIActivityViewController以及可能来自它的所有子项。这就是说,如果用户在UIActivityViewController上选择“邮件”或“消息”选项,则需要删除由于此操作而产生的视图(视图控制器?)。

我尝试了以下代码,发现它仅删除了原始的UIActivityViewController,并且没有生成任何其他视图。

[_myActivityController dismissViewControllerAnimated:NO completion:nil];

最佳答案

在您的appDelegate applicationDidEnterBackground中尝试此操作。关闭显示的最顶部的视图控制器。希望这对您有所帮助。

- (void)applicationDidEnterBackground:(UIApplication *)application {

    UIViewController *mytopController = [UIApplication sharedApplication].keyWindow.rootViewController;
    while (mytopController.presentedViewController)
    {
        mytopController = mytopController.presentedViewController;
        [mytopController dismissViewControllerAnimated:NO completion:nil];
    }

}

10-08 15:44