こんな感じでUIAlerControllerを表示した場合
-(void)pushButton:(id)sender {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Title",@"") message:NSLocalizedString(@"Message",@"") preferredStyle:UIAlertControllerStyleActionSheet];
[alertController addAction:[UIAlertAction actionWithTitle:@"Action1" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
//ボタンが押された時の処理
}]];
[self presentViewController:alertController animated:YES completion:nil];
}
だとiPadだとクラッシュするので、
alertController.popoverPresentationController.sourceView = self.view;
alertController.popoverPresentationController.sourceRect = ((UIButton *)sender).frame;
という感じで、presentViewControllerの前に呼んで上げる必要があります。