2010-04-14 2 views
1

У меня есть UIPopOverController, который показывает UIViewController с UITableview в своем представлении. Ячейки в таблице имеют подробный просмотр, но всякий раз, когда это представление толкается, PopOverController увеличивает размер, и я остаюсь со всем этим пробелом внутри него.Отображение мастера/детали UITableView внутри UIPopOverController

Вопрос в том, может ли кто-нибудь показать мне, как я могу показать мастер/деталь UITableview внутри PopOverController, сохраняя при этом свои размеры?

Некоторые из моего кода, если это поможет вам:

//Creating the PopOver with the UIViewController  
addTaskViewController = [[AddTaskViewController alloc] initWithNibName:@"AddTaskViewController" bundle:nil]; 
UINavigationController *addTaskNavController = [[UINavigationController alloc] initWithRootViewController:addTaskViewController]; 
UIPopoverController *addTaskPopOver = [[UIPopoverController alloc] initWithContentViewController:addTaskNavController]; 
self.addTaskPopOverController = addTaskPopOver; 
addTaskPopOverController.delegate = self; 
//...neccessary releases... 

//Showing the popover when a button is pressed 
- (void) addTasksButtonPressed:(id)sender { 
//Display the Popover containing a view from AddTaskViewController 
[self.addTaskPopOverController setPopoverContentSize:CGSizeMake(400, 700)]; 
[addTaskPopOverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
} 

ответ

2

Вы должны установить contentSizeForViewInPopover свойства зрения контроллера подробно на то же значение, что и родительский контроллер.

+0

Мартин, не могли бы вы разработать? Вы имеете в виду, что контроллер подробных представлений для моего UITableView должен иметь свое свойство, заданное как контроллер корневого представления для UITableView? –

+0

Выяснил это! Большое спасибо Мартину. Для тех, у кого такая же проблема, для обоих ViewControllers в вашем UITableView (мастер и деталь) установите его свойство contentSizeForViewInPopover в набор CGSize в вашем RootViewController (откуда вы запускаете всплывающее окно) –