Я пытаюсь разместить два разных UIPopovers в одном представлении. Я новичок в target-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, который появляется внутри всплывающего окна 1 (с контроллером всплывающего окна, называемым «popoverController»), а newCurrencyViewController
— это vc, который появляется внутри всплывающего окна 2 (с контроллером всплывающего окна, называемым «newCurrencyPopoverController
»).
Каждый раз при загрузке представления приложение вылетает с ошибкой SIGABRT
, а в консоли пишет:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPopoverController initWithContentViewController:] must not be called with `nil`.'
Кроме того, для строки, которая
saysnewCurrencyViewController =[[newCurrencyViewController alloc]init];
Моя первая мысль заключалась в том, что я где-то ошибся в имени файла, так как я думаю, что проблема в том, что он не находит файл с именем newCurrencyPopoverController, но я все проверил и не могу найти никаких ошибок или чего-то еще. Есть идеи?
Большое спасибо!
ЛЮК