我尝试将自定义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];
}
}
但是,当视图控制器解散时,它仍然存在。为什么呢?
答案 0 :(得分:2)
这是一个有效的例子:
http://www.apeth.com/iOSBook/ch26.html#_activity_view
请注意,我们最后通过调用activityDidFinish:
来结束。这就是拆掉原始界面的原因。这可能是您省略的步骤。如果没有,只需将你正在做的事情与我正在做的事情进行比较,因为我正在做的事情(在iPhone上)。