2013-03-14 5 views
7

Итак, в моем универсальном приложении у меня есть раздел, где человек может посмотреть существующий список заметок из нашей системы (извлеченный через простой веб-сервис), а затем также создать новую заметку, если они хотят. Так что для iphone это довольно простой макет, TableViewController для отображения списка с кнопкой «Добавить» на навигационной панели, которая представляет modalview для добавления нового элемента. На iPad, однако, у того же макета есть много потерянного пространства, поэтому я решил пойти с методом popOver, чтобы показать список в popOver, а затем позволить им добавить оттуда. Моя проблема заключается в том, что когда пользователь нажимает кнопку «Добавить» в представлении «PopOver», модальное представление появляется во весь экран, а не просто появляется в представлении popover. Вот код, который я до сих пор:Настоящий Modal View Controller изнутри Popover View

-(void) AddButtonPressed:(id)sender { 

NewNoteVC *newNote = [[[NewNoteVC alloc] initWithNibName:@"NewNoteVC" bundle:nil] autorelease]; 
newNote.defaultClientID = defaultClientID; 
UINavigationController *navCon = [[[UINavigationController alloc] initWithRootViewController:newNote] autorelease]; 
if ([isPopOver isEqualToString:@"YES"]) { 
    [navCon setModalInPopover:YES]; 
    [self.navigationController setModalInPopover:YES]; 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 
else { 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 

}

«isPopOver» строка просто заполнитель передается от предыдущего экрана, который называется этот TableView (я знаю, что могу переключить это логическое значение для лучшего Я просто поставил это вместе очень быстро, чтобы попробовать его). Я знаю, что я что-то испортил, я просто не знаю, какие настройки мне нужно, чтобы заставить эту работу работать правильно.

+0

Возможный дубликат [UIPopoverController, представленный модально не работает в iOS 5] (http://stackoverflow.com/questions/7806979/uipopovercontroller-presented-modally-doesnt-work-in-ios-5) – Till

ответ

22

Вы должны определить контроллера представления modalPresentationStyle быть «текущий контекст».

navCon.modalPresentationStyle = UIModalPresentationCurrentContext; 

Это приведет к тому, что контроллер модального вида, заполняющий popover, подобно корневому контроллеру popover.

+2

Это что мне нужно, спасибо. –

2

Попробуйте использовать presentViewController:animated:completion: вместо presentModalViewController:animated: и установить self.navigationController.definesPresentationContext = YES

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