2012年4月11日水曜日

UIPopoverControllerを使ってみる

先日ActionSheetの使い方を載せましたがちょっと下のiBooksみたいな画面を表示する場合はUIPopoverControllerを使います。

- (IBAction) tapAction:(id)sender
{
    // 表示するViewController
    SelectViewController *svc = [[[SelectViewController alloc] init] autorelease];

    // Popoverの領域の大きさを設定
    svc.contentSizeForViewInPopover = svc.view.frame.size;

    svc.delegate = self;

    // Popoverのインスタンス生成
    UIPopoverController *popover = [[UIPopoverController alloc]
                                    initWithContentViewController: svc];

    // Popoverを表示する
    [popover presentPopoverFromBarButtonItem:sender
                permittedArrowDirections:UIPopoverArrowDirectionAny
                animated:YES];
}

Popoverの表示領域を設定しない場合は、画面いっぱいにViewが表示されます。
ここでは svc.view.frame.size を指定していますがこうしておくとViewのサイズに合わせて表示されます。
独自のViewController(上ではSelectViewController)を使用する場合は予めimportしておく必要があります。

他にも使い方としてはカメラロールの表示も同じやり方で出来ます。

- (IBAction) tapAction:(id)sender
{
    UIImagePickerController *ipc = [[[UIImagePickerController alloc] init] autorelease];
    ipc.delegate = self;
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    
    // Popoverのインスタンス生成
    UIPopoverController *popover = [[UIPopoverController alloc]
                                    initWithContentViewController: ipc];

    // Popoverを表示する
    [popover presentPopoverFromBarButtonItem:sender
                permittedArrowDirections:UIPopoverArrowDirectionAny
                animated:YES];
}

注意することも書いてみたのでそちらもどうぞ
UIPopoverControllerを使う際に注意すること


0 件のコメント:

コメントを投稿