UISplitViewControllerのMasterViewController (UIPopoverController) を表示する (備忘録)

 

 

UISplitViewController は MasterViewController (UIPopoverController) を表示する為の標準のAPIが提供されていません。またUISplitViewControllerからUIPopoverControllerの表示は通常の方法ではないようで、UIPopoverArrowDirectionも無く、横からスライドしてくるような表示になります。

そこでアプリケーションの中で強制的にUIPopoverControllerをUIPopoverControllerと同じように表示する方法をまとめます。

@property (nonatomic, retain) UIBarButtonItem* barButtonItem;

- (void)splitViewController:(UISplitViewController *)svc
     willHideViewController:(UIViewController *)aViewController
          withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)pc {

    barButtonItem.title = @"メニュー";
    [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
    self.masterPopoverController = pc;
    self.barButtonItem = barButtonItem;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [__barButtonItem.target performSelector:__barButtonItem.action
                                 withObject:__barButtonItem];
}

Leave a Reply

Your email address will not be published. Required fields are marked *

*

CAPTCHA


WP-SpamFree by Pole Position Marketing