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 共享 UIActivity 未显示
UIActivityViewController 不适用于 WKWebView
限制 UIActivityViewController 共享扩展活动