/ サイズ指定
viewController.contentSizeForViewInPopover = CGSizeZero;
// モーダル有無設定
viewController.modalInPopover = YES;
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
テンプレート
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
// デリゲート
<
UIImagePickerControllerDelegate, // 例用
UIPopoverControllerDelegate,
UINavigationControllerDelegate
>
// プロパティ
@property (strong, nonatomic) UIPopoverController *popover;
#pragma mark - UIPopoverControllerDelegate
/**
* ポップオーバー消去時に呼ばれる
* @param popoverController UIPopoverControllerインスタンス
* @return 消去可否
*/
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
return YES;
}
/**
* ポップオーバー消去後に呼ばれる
* @param popoverController UIPopoverControllerインスタンス
* @return 無し
*/
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
_popover = nil;
}
#pragma mark - Instance Method
/**
* ポップオーバーを閉じる
* @param 無し
* @return 無し
*/
- (void)closePopover
{
if (_popover) {
if ([_popover isPopoverVisible]) {
[_popover dismissPopoverAnimated:YES];
_popover = nil;
}
}
}
// 例)
#pragma mark - IBAction
/**
* Fontボタンタップ時に呼ばれる
* @param sender UIButtonインスタンス
* @return 無し
*/
- (IBAction)touchFontButton:(UIButton *)sender
{
FontViewController *vc = [[FontViewController alloc] initWithNibName:@"FontViewController" bundle:nil];
_popover = [[UIPopoverController alloc] initWithContentViewController:vc];
_popover.delegate = self;
CGRect rect = sender.frame;
[_popover presentPopoverFromRect:rect inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
- (IBAction)didTouchPlusButton:(UIButton *)sender
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
_popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
_popover.delegate = self;
CGRect rect = sender.frame;
[_popover presentPopoverFromRect:rect inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
#pragma mark - FontViewControllerDelegate
/**
* Font選択時に呼ばれる
* @param fontName フォント名
* @return 無し
*/
- (void)selectedFontName:(NSString *)fontName
{
_fontNameLabel.text = fontName;
[self closePopover];
}
最終更新:2016年06月01日 16:03