кнопка создания для якоря представления popover во время выполнения

Это может быть невозможно, но я надеюсь, что у кого-то появится идея, как это сделать.

У меня есть приложение, которое я портирую с 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. Я могу установить панель навигации в качестве привязки, но это делает ее привязкой к заголовку в панели навигации, что выглядит глупо.

Есть идеи?

Ответы на вопрос(4)

Ваш ответ на вопрос