2013-08-28 3 views
1

Я пишу приложение, которое должно появиться popover, чтобы добавить новую заметку. Для этого у меня есть что-то вроде трюка, однако я не могу настроить размер popover. Вот как я его нерестую:Невозможно изменить размер для UIPopover?

UIButton* btn =sender; 
UIViewController* fooTroller = [[UIViewController alloc] init]; 

CGRect rectFoo = CGRectMake(0, 0, 100, 100); 
UIView* fooView = [[UIView alloc] initWithFrame:rectFoo]; 
[fooView setBackgroundColor:[UIColor redColor]]; 
[fooTroller setView:fooView]; 
popOver =[[UIPopoverController alloc] initWithContentViewController:fooTroller]; 

[popOver presentPopoverFromRect:btn.frame 
         inView:self.view 
     permittedArrowDirections:UIPopoverArrowDirectionLeft 
         animated:YES]; 

Любые мысли? Это не соответствует размеру вида.

ответ

3

Вы не должны называть setView: на контроллере. Пусть диспетчер представлений настроит собственное представление.

Правильный способ определения размера popover состоит в том, чтобы либо переопределить метод вашего контроллера вида, либо вернуть значение popoverContentSize.

UIButton* btn =sender; 
UIViewController* fooTroller = [[UIViewController alloc] init]; 

popOver = [[UIPopoverController alloc] initWithContentViewController:fooTroller]; 
popOver.popoverContentSize = CGSizeMake(100, 100); 

[popOver presentPopoverFromRect:btn.frame 
         inView:self.view 
     permittedArrowDirections:UIPopoverArrowDirectionLeft 
         animated:YES]; 
+0

Благодарим за это. Итак, если бы у меня был пользовательский интерфейс, который мне нужен в popover, как бы я его показал? – easythrees

+0

Как и любой другой экран - вы создаете настраиваемый класс контроллера вида с любыми видами и логикой, в которых вы нуждаетесь. – rmaddy

+0

Хорошо, взгляд должен быть сделан программным путем, но я буду исследовать это. Благодаря! – easythrees

Смежные вопросы