有什么办法可以判断是否使用UIDocumentInteractionController发生了菜单事件?

时间:2013-04-30 03:45:22

标签: ios uidocumentinteraction

我刚开始从事iOS开发,所以请耐心等待。我正在为朋友构建一个应用程序,其中一个功能是能够在Instagram上发布用户在应用程序中拍摄的图片。我在同一控制器中有UIImageViewUIViewvImagePreview,相机预览)。当用户拍照时,UIImageView被带到前面,静止图像的图像显示在UIImageView中。 UIImageView(postInstagram)中有一个按钮,用于触发调出Instagram菜单的方法。当用户触发菜单中的任一事件(在Instagram中打开或取消)时,我希望能够将原始视图置于前面。现在我正在使用计时器它确实有效,但它很尴尬。这是我的代码:

- (IBAction)postInstagram:(id)sender {

 //interactionControllerWithURL:instagramURL
 NSString *savePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/photo.igo"];

 //Write image to PNG
 [UIImageJPEGRepresentation(self.image, 1.0) writeToFile:savePath atomically:YES];

 NSURL *photoURL = [NSURL fileURLWithPath:savePath];
 NSURL *instagramURL = [NSURL URLWithString:@"instagram://user?username=USERNAME"];


 if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
 self.docController = [UIDocumentInteractionController interactionControllerWithURL:photoURL];
 self.docController.UTI = @"com.instagram.exclusivegram";
 self.docController.annotation = [NSDictionary dictionaryWithObject:@"Insert Caption here" forKey:@"InstagramCaption"];
 [self.docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
 timer = [NSTimer scheduledTimerWithTimeInterval: 10.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: NO];


 }
}

-(void) targetMethod:(NSTimer *)timer {
[self.view bringSubviewToFront:self.vImagePreview];
}

1 个答案:

答案 0 :(得分:0)

抱歉,我不完全理解你的需要。如果我没有错?

使用UIDocumentInteractionControllerDelegate将self.docController.delegate设置为某个控制器。

然后实现方法并在其中调用targetMethod:

documentInteractionController:willBeginSendingToApplication:

如果不是您想要的,请根据您的需要尝试其他方法。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDocumentInteractionControllerDelegate_protocol/Reference/Reference.html