Если ваш код основан на вопросе, на который вы ссылались, может показаться, что вы используете следующий код для отображения всплывающего окна:
[popoverController presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES]
UIPopoverController: presentPopoverFromBarButtonItem: allowArrowDirections: animated принимает UIBarButtonItem * дляотправитель, которого нет у вашего UITabBar.UITabBar использует UITabBarItem, который имеет базу UIBarItem.UIBarButtonItem также имеет эту базу (UIBarItem).
Во всяком случае ... Мне также нужно было показать контроллер uipopover с tabbaritem, я использовал следующий код:
MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:myVC];
[myVC release];
popover.popoverContentSize = myVC.view.frame.size;
popover.delegate = self;
int tabBarItemWidth = self.tabBar.frame.size.width / [self.tabBar.items count];
int x = tabBarItemWidth * 6;
CGRect rect = CGRectMake(x, 0, tabBarItemWidth, self.tabBar.frame.size.height);
[popover presentPopoverFromRect:rect
inView:self.tabBar
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
Примечание: ваш расчет хбудет другим.Для меня был выбран 6-й элемент панели вкладок.В основном
x = tabBarItemWidth * currentTabBarItemIndex;