前言
UIPopoverController这个东西在9.0之后就只属于Ipad了,取而代之的是使用UIModalPresentationPopover 。下面以Storyboard的形式实现Iphone中UIModalPresentationPopover的使用。
环境
Xcode: Ver7.2.1
IOS:9.2
效果图
Storyboard设定
代码
- (IBAction)popoverButtonPressed:(id)sender {
[self performSegueWithIdentifier:@"PopSegue" sender:self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"PopSegue"]) {
UIViewController *controller = segue.destinationViewController;
// 设置Controller尺寸
controller.preferredContentSize = CGSizeMake(100, 300);
UIPopoverPresentationController *popController = controller.popoverPresentationController;
// 设置箭头的“尖儿”所指向的位置
popController.sourceRect = CGRectMake(0, 50, 100, 0);
if (popController) {
popController.delegate = self;
}
}
}
// UIPopoverPresentationControllerDelegate中的代理方法,当前controller需要遵守此协议
-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
// 设置弹出的样式
return UIModalPresentationNone;
}