Я имел некоторый код, используя новый класс UIAlertController, который работал нормально в прошивкой 8. Теперь сбой в прошивке 9 со следующим сообщением об ошибке:Проблема с использованием barButtonItem для popoverPresentation Контроллер в iOS 9?
2015-07-23 10:38:27.499 MyApp[828:563509] -[UITabBarItem _viewForPresenting]: unrecognized selector sent to instance 0x157644960
2015-07-23 10:38:27.500 MyApp[828:563509] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITabBarItem _viewForPresenting]: unrecognized selector sent to instance 0x157644960'
Проблема, кажется, использует barButtonItem чтобы настроить popoverPresentationController, а не просто использовать sourceView/sourceRect. Если я переключусь на последнее, это прекрасно (но, конечно, лист действий не появляется из того места, где я хотел его всплыть). Пока что сообщение об ошибке в Google не было пустым.
Вот код. Это довольно просто, ничего особенного здесь:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"What do you want to do?" message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[alertController addAction:[UIAlertAction actionWithTitle:@"Clear Call History" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
[self confirmClearCallHistory];
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}]];
[alertController setModalPresentationStyle:UIModalPresentationPopover];
//if I do this (like I want to), it crashes:
[alertController popoverPresentationController].barButtonItem = self.tabBarController.callsTab;
// if I do this, it's fine:
// [alertController popoverPresentationController].sourceView = self.editButton;
// [alertController popoverPresentationController].sourceRect = self.editButton.bounds;
[self presentViewController:alertController animated:YES completion:nil];
У кого-нибудь еще были подобные проблемы? Это то же самое во всех трех бета-версиях iOS 9 до сих пор ...
(О, и я должен упомянуть, что он падает только на iPad, а не на iPhone ... но это неудивительно, потому что режим презентации для листа действий это нет-op на iPhone, то есть все листы действий представлены одинаково независимо от того, что)
У меня такая же проблема, но до сих пор не найдено решение ... Разве вы? – Insider