Это может быть невозможно, но я надеюсь, что у кого-то появится идея, как это сделать.
У меня есть приложение, которое я портирую с iPhone только на Universal.На iPhone я использую приложение с вкладками.Я использую три вкладки для отображения нормальных данных.У меня есть четвертая вкладка, которая отображается только при соблюдении определенных условий.Чтобы добавить вкладку, я делаю:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
UITabBarController *tabController = (UITabBarController *) self.rootViewController;
NSMutableArray* newArray = [NSMutableArray arrayWithArray: tabController.viewControllers];
[newArray addObject: [theStoryboard instantiateViewControllerWithIdentifier: @"AdditionalView-Phone"]];
[tabController setViewControllers:newArray animated:YES];
}
Для iPad у меня достаточно места на начальном экране, чтобы отобразить все из трех основных вкладок в пользовательском интерфейсе iPhone.Так что все, что мне нужно, это один дополнительный (маленький) просмотр для «Дополнительные» данные.Я хотел сделать это, используя представление popOver, поэтому я настроил начальный вид с помощью панели навигации и кнопки всплывающего окна, как в шаблоне приложения Utility.Но сейчас я застрял.Я не могу понять, как создать эту всплывающую кнопку во время выполнения и заставить ее правильно перейти к представлению popOver.Я могу добавить кнопку следующим образом:
UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] initWithTitle: @"Modem" style: UIBarButtonItemStylePlain target: self action: @selector(togglePopover:)];
self.navBar.topItem.rightBarButtonItem = flipButton;
, но получаю исключение: «NSInternalInconsistencyException», причина: «UIStoryboardPopoverSegue должен быть представлен из элемента кнопки панели или представления».Я почти уверен, что это потому, что у меня нет привязки для популярного перехода.Кнопка не существует в раскадровке, поэтому я не могу установить ее там.И я не могу найти API, чтобы установить его во время выполнения.
Я также попытался создать кнопку в IB, но не в иерархии представления, а затем просто установить свойство rightBarButtonItem для моей существующей кнопки.,Это также работает, но я все еще не могу установить эту кнопку в качестве якоря для представления popover.Я могу установить панель навигации в качестве привязки, но это делает ее привязкой к заголовку в панели навигации, что выглядит глупо.
Есть идеи?