UIPopoverController

/ サイズ指定
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