2010-09-02 54 views

回答

4

在「 - (BOOL)shouldAutorotateToInterfaceOrientation」方法中,檢查設備的方向。如果是縱向,則顯示彈出窗口,以便在用戶單擊欄按鈕時使其可見。

一切順利。

+0

這應該在哪個視圖控制器中實現? – user102008 2010-10-11 23:43:26

+0

分割視圖控制器的詳細視圖控制器。祝一切順利。 – gopikrishnan 2010-10-12 04:57:39

+0

此方法在iOS 6中已被刪除。使用'didRotateFromInterfaceOrientation:' – hop 2014-07-09 14:06:11

2

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; 
} 
+0

您在這些代表中所做的所有操作都顯示一個按鈕。 OP想要在旋轉到肖像時可以看到彈出窗口。 – 2011-08-15 16:42:32

1

(使用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調用這個也處理上啓動。

相關問題