2010-08-13 4 views
4

Я пытаюсь представить Popover с помощью кнопки в UIModalPresentationPageSheet. Он сбрасывает приложение и возвращает на консоль следующее сообщение:Настоящий Popover от Modal View Controller

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Popovers cannot be presented from a view which does not have a window.' 

Мой код отлично работает в стандартном контроллере. Как следует из сообщения, есть что-то относительно модальности, которая препятствует его отображению. Я довольно много искал эту тему, но не нашел решения. Я должен верить, что это возможно, поскольку я видел что-то очень похожее в таких приложениях, как 1Password.

Указатели и/или предложения были высоко оценены.

ответ

0

Следующий код, кажется, работает для меня, попробуйте следующее:

[_pPopOverController presentPopoverFromRect:CGRectMake(0, 0, 768, 900) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES]; 
0

Я не знаю, который SDK вы использовали, но я не получаю исключение с 5.1. Я показывающая поповер из текстового поля и следующий код работает:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

[_popController presentPopoverFromRect:textField.frame 
           inView:textField.superview 
       permittedArrowDirections:UIPopoverArrowDirectionAny 
           animated:YES]; 
return NO; 

}

0

я бы поспорить, что проблема заключается в том, что вы передаете контроллер представления вместо зрения для параметра INview , Он пытается получить .window для UIViewController, а UIViewControllers не имеет одного, UIViews.