前言
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;
}