ポートレートモードのiPadでUIsplitviewのポップオーバーが見えるようにする方法
-
26-09-2019 - |
質問
私は、ユーザーがアプリの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
以内にこれを呼び出します。
所属していません StackOverflow