2011-09-22 73 views
0

我使用PresentPopOverFromRect方法呈現UIPopovercontroller。在肖像方向。當我自動旋轉到橫向UIPopoverController沒有出現在適當的位置。如何在自動旋轉設備時定位UIPopoverController。自動旋轉UIPopOverController問題

+0

顯示您調用presentPopoverFromRect的代碼。在shouldAutorotateToInterfaceOrientation中,所有視圖控制器都返回YES嗎? – Anna

+0

@AnnaKarenina:是的 – user691106

回答

0

你需要重寫此函數:

- (void)willAnimateRotationToInterfaceOrientation: 
(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 

在那裏你可以改變這取決於您的當前方位的UIPopovercontroller的尺寸和位置。這個函數很方便,因爲它在屏幕重繪之前和用戶界面開始旋轉之前被調用。

您應該檢查此tutorial瞭解如何處理iPad不同方向的佈局。

0

是的,作爲tiguero說,在自定義的UIViewController,您可以覆蓋的方法:

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{ 
    [self.popOverViewController dismissPopoverAnimated:NO]; 
    CGRect yourNewRect = CGRectMake(0.0, 0.0, 20, 20); 
    [self.popOverViewController presentPopoverFromRect:yourNewRect inView:yourView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
} 

你可以試試!