Я пытаюсь поместить два разных UIPopovers в один вид. Я довольно новичок в Objective-C и в программировании в целом, поэтому вместо умного и эффективного метода с одним поповером и изменением его содержимого в зависимости от того, как он вызывается, я просто использовал глупый, простой метод простого создания два представления, два делегата, два всплывающих окна и т. д. Я не знаю, из-за чего у меня возникла проблема или по какой-то другой причине.
Так вот в чем проблема. В viewdidload
представления, где появляются всплывающие окна, у меня есть этот код:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
optionsViewController =[[OptionsViewController alloc]init];
optionsViewController.delegate = self;
popoverController = [[UIPopoverController alloc] initWithContentViewController:optionsViewController];
popoverController.popoverContentSize = CGSizeMake(320, 216);
[popoverController setDelegate:self];
newCurrencyViewController =[[newCurrencyViewController alloc]init];
newCurrencyViewController.delegate = self;
newCurrencyPopoverController = [[UIPopoverController alloc] initWithContentViewController:newCurrencyViewController];
newCurrencyPopoverController.popoverContentSize = CGSizeMake(320, 216);
[newCurrencyPopoverController setDelegate:self];
}
Очевидно, optionsViewController
- это vc, который появляется внутри popover 1 (с контроллером popover, называемым «popoverController»), а newCurrencyViewController
- это vc, который появляется внутри popover 2 (с контроллером popover, называемым «newCurrencyPopoverController
»).
Каждый раз, когда загружается представление, приложение вылетает с ошибкой SIGABRT
, и консоль говорит:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPopoverController initWithContentViewController:] must not be called with `nil`.'
Также есть предупреждение «метод экземпляра -alloc не найден (тип возвращаемого значения по умолчанию равен id)» для строки, которая
saysnewCurrencyViewController =[[newCurrencyViewController alloc]init];
Сначала я подумал, что где-то неправильно написал имя файла, так как я думаю, что проблема в том, что он не находит файл с именем newCurrencyPopoverController, но я проверил все и не могу найти ни орфографических ошибок, ни чего-либо , Есть идеи?
Большое спасибо!
ЛУКА