Guj*_*min 13 sdk popover ipad ios uiactivity
在iOS 6中使用客户UIActivity子类时,可以指定从初始UIActionViewController视图中选择操作时将显示的自定义视图控制器.您可以通过从UIActivity子类的activityViewController方法返回对自定义视图控制器的引用来完成此操作.
activityViewController
此方法的默认实现返回
nil.使用视图控制器提供附加UI的子类可以重写此方法以返回该视图控制器.如果此方法返回有效对象,系统将为您显示返回的视图控制器,而不是调用该performActivity方法.在iPad上,您的视图控制器显示在弹出窗口内.在iPhone和iPod touch上,视图控制器以模态呈现.您的自定义视图控制器应提供自定义UI的视图,并应处理这些视图中的任何用户交互.完成活动后,请勿自行关闭视图控制器.相反,调用
activityDidFinish:方法并让系统为您解雇它.
请注意第一段末尾的位:在iPad上,视图控制器显示在弹出框内.在iPhone和iPod touch上,视图控制器以模态呈现.
但是,在iPad上activityViewController,无论我如何呈现UIActivityViewController(无论是模态还是通过弹出窗口),返回的视图控制器始终以模态方式显示.当通过弹出窗口呈现时,它会导致崩溃,因为它不认为它被解雇了.
我究竟做错了什么?这是iOS 6中的错误吗?
更新:这是一个简单的Xcode项目,用于说明问题.随意克隆它并玩游戏,看看你是否能看到我们出错的地方:github.com/simonwhitaker/GSActivityDemo
And*_*Dev 23
我们正在谈论UIActivityViewController,它是向用户显示可用活动的视图.苹果声明如下......
您的应用程序负责配置,显示和关闭此视图控制器.视图控制器的配置涉及指定视图控制器应该在其上操作的数据对象.(您还可以指定应用程序支持的自定义服务列表.)在呈现视图控制器时,必须使用适当的方法为当前设备执行此操作.在iPad上,您必须在弹出窗口中显示视图控制器.在iPhone和iPod touch上,您必须以模态方式呈现它.
我把最后一行作为你必须处理视图呈现方式的标志,所以我检查代码是否在iPad上运行并相应地使用UIPopover.你可以在这里找到... https://github.com/bufferapp/buffer-uiactivity/blob/master/BufferUIActivity/Views/FirstViewController.m在以下方法中.
-(IBAction)openUIActivityView:(id)sender {
    NSString *text = @"Hello world";
    NSString *url = @"http://bufferapp.com";
    NSArray *activityItems = @[text, url];
    BufferUIActivity *bufferActivity = [[BufferUIActivity alloc] init];
    UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:@[ bufferActivity ]];
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        [self presentViewController:activityView animated:YES completion:^{
        }];
    } else {
        // Change Rect to position Popover
        self.popup = [[UIPopoverController alloc] initWithContentViewController:activityView];
        [self.popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.width/2, 100, 100) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }
}
| 归档时间: | 
 | 
| 查看次数: | 18242 次 | 
| 最近记录: |