UIActivityViewController 不解散

Posted

技术标签:

【中文标题】UIActivityViewController 不解散【英文标题】:UIActivityViewController not dismissing 【发布时间】:2013-04-26 00:56:03 【问题描述】:

我正在尝试将自定义 UIActivity 添加到 UIActivityController。当我单击该项目时,它会显示我想要的视图控制器,但是当我完成该视图控制器时,原来的 UIActivityViewController 仍然存在。我的问题是,我如何以及在哪里关闭活动视图控制器?这是我的自定义 UIActivity 中的代码。

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems
    self.activityTitle = @"Text Editor";
    self.activityType = @"TextEdit";
    self.activityImage = [UIImage imageNamed:@"Icon.png"];
    if (activityItems) return YES;
    else return NO;


- (void)prepareWithActivityItems:(NSArray *)activityItems
    for (NSString *path in activityItems) 
        if ([path lastPathComponent]) 
            self.file = path;
        
    


- (UIViewController *)activityViewController
    ACTextEditController *actec = [[ACTextEditController alloc] initWithFile:_file];
    return actec;

编辑

我试过这样做,我知道它被调用了,因为我尝试在其中记录一些东西,它被调用了

- (void)activityDidFinish:(BOOL)completed
    if (completed) 
        [self.activityViewController dismissViewControllerAnimated:YES completion:nil];
    

但是,当视图控制器关闭时,它仍然存在。为什么?

【问题讨论】:

你能更具体一点吗?或重画问题?我不明白你需要什么。 问题是在我关闭UIActivity 对象呈现的视图控制器后,原始菜单(UIActivityViewController)仍然显示。可以通过单击取消将其关闭,但我希望它已经被关闭。 这是在 iPad 上吗?当您提供自己的 activityViewController 时,iPad 上的 UIActivityViewController 存在一个巨大的错误 好的,那么您的控制器应该包含关闭按钮,并且它们必须发送activityDidFinish: 【参考方案1】:

这是一个工作示例:

http://www.apeth.com/iosBook/ch26.html#_activity_view

请注意,我们最终调用了activityDidFinish:。这就是破坏原始界面的原因。这可能是您省略的步骤。如果没有,只需将您正在做的事情与我正在做的事情进行比较,因为我正在做的事情(在 iPhone 上)。

【讨论】:

因为你没有按照我说的去做。 你读过我指给你看的那一章吗? “展示或关闭activityViewController 不是我们的工作。您只需调用活动实例的activityDidFinish,一切都会为您拆除。看看我的示例代码!它会告诉您确切的操作。 当我展示的视图控制器关闭时,我调用activityDidFinish:。我还尝试在活动视图控制器中单击按钮时调用它。我注意到当单击按钮后呈现视图控制器时,活动视图控制器关闭,但是当我呈现的视图控制器被关闭时,它又回来了 你不要关闭它!你打电话给activityDidFinish,一切都为你关闭。 这是一个完整的可下载示例:github.com/mattneub/Programming-iOS-Book-Examples/tree/master/…

以上是关于UIActivityViewController 不解散的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityViewController 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色