ポートレートモードのiPadでUIsplitviewのポップオーバーが見えるようにする方法

StackOverflow https://stackoverflow.com/questions/3628828

質問

私は、ユーザーがアプリのUIsplitViewにおいて肖像ビューに風景ビューから切り替えるたびにポップオーバービューが見えるようにしたいです。ユーザーがバーボタンをクリックすることで、それが見えるようにすることができますが、私は、これはポートレートモードのために自動化することにしたいもののます。

役に立ちましたか?

解決

その後、方法、デバイスのチェック、それは肖像画であるorientation.If、あなたがそうであるように、ユーザがバーボタンをクリックしたときにそれが見えるようにするためにポップオーバーを発表

-

インサイド「(BOOL)shouldAutorotateToInterfaceOrientation」。

すべての最高ます。

他のヒント

UISplitViewControllerは、彼の代理人(UISplitViewControllerDelegate)にメッセージを送信します。あなたはポップオーバーを表示するには、このデリゲートメソッドを実装することができます。あなたの「詳細コントローラ」のコードでこのような何かを行うことができます:

#pragma mark -
#pragma mark UISplitViewControllerDelegate implementation
- (void)splitViewController:(UISplitViewController*)svc 
     willHideViewController:(UIViewController *)aViewController 
          withBarButtonItem:(UIBarButtonItem*)barButtonItem 
       forPopoverController:(UIPopoverController*)pc
{  
    [barButtonItem setTitle:@"Your 'popover button' title"];
    self.navigationItem.leftBarButtonItem = barButtonItem;
}


- (void)splitViewController:(UISplitViewController*)svc 
     willShowViewController:(UIViewController *)aViewController 
  invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    self.navigationItem.leftBarButtonItem = nil;
}
shouldAutorotateToInterfaceOrientationを使用して)

受け入れ答えは私のために動作しません。それはどちらか、その後の回転で二度と回転(4.2と5.0のiPadシミュレータで)成果物または起動時にのみショーや(4.3シミュレータ)を持っています。私が代わりにやったことはほとんどないヘルパー関数を作成することでした。

- (void)showPopoverInPortrait {
    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) {
        [self.masterPopoverController presentPopoverFromBarButtonItem:self.navigationItem.leftBarButtonItem
                                             permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                             animated:YES];
    }
}

とも起動時に処理するために- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation- (void)viewDidLoad以内にこれを呼び出します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top