Tag: popover uiactivity

iOS 7自定义UIActivity作为popup窗口

这是我在StackOverflow上的第一个问题,请耐心等待… 这是问题: 我已经创build了一个自定义的活动添加书签,这是从UIActivityViewController打开。 在iPhone上,它被打开为一个模式,这是可以的。 但是在iPad上,我在Popover中打开了UIActivity ,并且还想在此Popover中打开自定义的BookmarkActivity。 方法 -(UIViewController *)activityViewController在我的UIActivity子类中的-(UIViewController *)activityViewController看起来像这样: – (UIViewController *)activityViewController { if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) { GlobalBookmarksAddViewController *bookmarkViewController = [self.parentController.storyboard instantiateViewControllerWithIdentifier:@"GlobalBookmarksAddViewController"]; bookmarkViewController.openedDocument = self.openedDocument; bookmarkViewController.yAxis = self.yAxis; bookmarkViewController.parentActivity = self; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:bookmarkViewController]; nav.modalInPopover = YES; //nav.modalPresentationStyle = UIModalPresentationFormSheet; nav.modalPresentationStyle = UIModalPresentationCurrentContext; return nav; } else { GlobalBookmarksAddViewController […]

UIActivity activityViewController在iPad上以模式呈现,而不是在popup窗口中呈现

在iOS 6中使用客户UIActivity子类时,可以指定一个自定义的视图控制器,当您从最初的UIActionViewController视图中select动作时,将显示该控制器。 您可以通过从UIActivity子类的activityViewController方法返回对自定义视图控制器的引用来完成此操作。 根据UIActivity类的参考 : activityViewController 此方法的默认实现返回nil 。 使用视图控制器提供附加UI的子类可以重写此方法以返回该视图控制器。 如果此方法返回一个有效的对象,则系统会为您呈现返回的视图控制器,而不是调用performActivity方法。 在iPad上,您的视图控制器在popup窗口内呈现。 在iPhone和iPod touch上,您的视图控制器以模态方式呈现。 您的自定义视图控制器应该为您的自定义UI提供一个视图,并且应该处理这些视图内的任何用户交互 完成活动后,请勿自行解除视图控制器。 相反,调用activityDidFinish:方法,让系统为你解雇它。 请注意,在第一段结尾处: 在iPad上,视图控制器显示在popup窗口中。 在iPhone和iPod touch上,您的视图控制器以模态方式呈现。 但是,在iPad上,由activityViewController返回的视图控制器总是以模态方式显示,无论我如何呈现UIActivityViewController(无论是通过模式还是通过popup窗口)。 当通过popover展示时,会导致它崩溃,因为它不认为它已被解雇。 我究竟做错了什么? 这是iOS 6中的错误吗? 更新:这是一个简单的Xcode项目,说明了这个问题。 随意克隆它,并玩弄,看看你是否可以看到我们要去哪里错了: github.com/simonwhitaker/GSActivityDemo