2012-05-03 7 views
4

Я хотел бы спроектировать мои взгляды в интерфейсе Builder, чтобы динамически отображать их как UIPopoverController.Как отобразить представление, сделанное с помощью Interface Builder как UIPopoverController?

Я нашел this precious tutorial от Ray Wenderlich, но я не могу продлить его до моих потребностей.

Любой может мне помочь?

Большое спасибо.

+0

Что именно ваша проблема? Создание UIViewControllers и представление их как popovers очень легко и должно быть охвачено в этом учебнике. Какая часть вас беспокоит? Возможно, вы пытаетесь представить представления, не привязанные к контроллеру вида? – BBog

+0

Привет, Богдан, у меня есть вид, прикрепленный к контроллеру вида. Я не знаю, как отображать его как popover, используя этот код. Действительно, в учебнике Ray строит контроллер табличного представления. – gluon

ответ

7

Вот как я обычно это делаю: допустим, у меня есть родительский контроллер представления, в котором я хочу представить popover. Заявляет контроллер поповера как свойство для этого VC (@property (неатомического, сохранить) UIPopoverController * popOverController;)

Кода для представления поповера с новым контроллером зрения, давайте назовем его ViewController2, будет это один

ViewController2* viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; 

self.popOverController = [[UIPopoverController alloc] initWithContentViewController:viewController2]; 

popOverController.popoverContentSize = CGSizeMake(350, 216); //or whatever size you need 

//this will present the view controller from the sender's frame, assuming this code is used inside an IBAction 
//and the popover's arrow will point down 
[popOverController presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

[viewController2 release]; 

[popOverController release]; 

это довольно много его ... Если возникнет какие-либо проблемы, я постараюсь дать вам более подробную информацию.

P.S. Я не утверждаю, что это лучший способ сделать это, у меня меньше года опыта работы с iOs, но так мы обычно делаем это, где я работаю

+0

Он полностью отвечает, и я тоже все понял. Большое спасибо Богдану! Вы можете проверить мой проект (S) на моем блоге, если вам интересно http://julienbayle.net – gluon

+0

Я тестировал, он работает. НО, в файле VC2.mm, в IBAction, связанном с некоторыми элементами пользовательского интерфейса (слайдеры и т. Д.), Когда я изменяю значение, у меня есть странные сбои EXEC_BAD_ACCESS, связанные с конечным целевым контроллером ... копание. Тот факт, что я выделяю & выпускать popover & VC 2 в том же IBAction нормально. ..? – gluon

+0

Да, все в порядке. Что в журнале сбоев рассказывают об ошибке? Кроме того, попробуйте включить NSZombies, это обычно помогает при работе с ошибками EXEC_BAD_ACCESS. Http://stackoverflow.com/q/5386160/855738 – BBog

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