2012-12-13 23 views
1

我有一個UITableViewController,我試圖在UIPopoverController中顯示。無論如何,tableview總是在popover中全部顯示。調整UITableViewController的顯示在彈出窗口

在我的StoryBoard中,我已將UITableViewController的大小設置爲自由形式。我已經在尺寸檢查器中明確設置了UITableView的高度和寬度。

下面是我設置的控制器和酥料餅:

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard-iPad" bundle:nil]; 

self.settingsController = [sb instantiateViewControllerWithIdentifier:@"SettingsViewControllerID"]; 

self.settingsPopover = [[UIPopoverController alloc] initWithContentViewController:_settingsController]; 

我也試着顯式設置控制器的酥料餅的大小:

self.settingsController.contentSizeForViewInPopover = CGSizeMake(400.0, 400.0); 

當我運行的應用程序,並激活酥料餅 - 它幾乎和主屏幕一樣高。

我在這裏錯過了一些明顯的東西嗎?

由於提前, CS

回答

0

的總的UITableViewController希望成爲窗口的全尺寸,或酥料餅(這是一種特殊的窗口)。如果你想要一個更小的表格視圖,可以使用UIViewController作爲彈出窗口的內容控制器。您應該可以在IB中調整它的大小。

+0

在文檔中的哪個位置說的? :) 謝啦。 – RobertJoseph

+1

它在「iOS的桌面視圖編程指南」中。以下是關於控制器部分的聲明:「UITableViewController類的默認行爲是使表視圖填充導航欄和選項卡欄(如果存在)之間的屏幕。」 – rdelmar

3

您可以使用下面的代碼更改tableView大小。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
     UIStoryboardPopoverSegue *popoverSegue; 
     popoverSegue = (UIStoryboardPopoverSegue *)segue; 
     UIPopoverController *popOverController = popoverSegue.popoverController; 
     [_popOverController setPopoverContentSize:CGSizeMake(width, height)]; 
}