Настоящий поповер из модального контроллера - PullRequest
4 голосов
/ 14 августа 2010

Я пытаюсь представить Popover от кнопки в UIModalPresentationPageSheet.Это вылетает из приложения и возвращает следующее сообщение на консоль:

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

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

Указатели и / или предложения очень ценятся.

Ответы [ 3 ]

0 голосов
/ 22 июля 2012

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

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

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

}

0 голосов
/ 06 июня 2014

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

0 голосов
/ 04 ноября 2010

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

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