我有一个UIActivity
子类,它创建自己的activityViewController
:
- (UIViewController *)activityViewController {
WSLInProgressViewController* progressView = [[[WSLInProgressViewController alloc] init] autorelease];
progressView.message = [NSString stringWithFormat:NSLocalizedString(@"Posting to %@...",@"Posting to..."),
self.activityType];
return progressView;
}
我已经添加了一个完整的在GitHub上的复现。
根据文档,您不应手动解除此操作。相反,在调用
activityDidFinish:
时,操作系统会执行此操作。在iPhone上运行时,这很好用。当我说“工作”时,我期望的事件顺序是(并且在iPhone上看到):
1. 显示
UIActivityViewController
2. 用户按下我的自定义活动
3. 我的视图控制器出现
4. 我调用activityDidFinish:
5. 我的自定义视图控制器被解除
6. UIActivityViewController
也被解除但是,当我在iPad模拟器上运行此相同代码时-唯一的区别是我将
UIActivityViewController
放在弹出窗口中,因为文档说你应该这样做-activityViewController
从未解除。正如我所说,这是没有弹出窗口的代码在iPhone上工作,我已经逐步执行了代码,所以我知道
activityDidFinish:
正在被调用。我发现这个雷达谈论了
iOS6
beta 3中的同样问题,但这似乎是如此基本的功能,以至于我怀疑我的代码有bug而不是操作系统(还要注意的是它与Twitter和Facebook功能正常工作!)。
我是否漏掉了什么?当在UIPopoverViewController
中运行时,我需要在activityViewController中做一些特殊的事情吗?在iPad上,这个“流程”是否应该不同?
activityViewController
的自定义 UIActivity 是无用的。 - mattactivityViewController
。 - Stephen Darlington