我正在开发一个应该通用的应用程序,一个适用于iPad和iPhone的应用程序。我想让它们的界面尽可能相似。在iPhone应用程序中,我使用的是标签栏控制器,这些标签之一进入图像选择器控制器。显然,我无法在iPad中做到这一点。因此,我劫持了对该按钮的控制,以带来一个其中装有图像选择器的popupcontroller。所有这些工作都很好,除了弹出弹出窗口时,它不在正确的位置。当我旋转模拟器时,弹出窗口将移至正确的位置,而当我向后旋转时,弹出窗口将保留。

我的代码基于以下问题中的代码:
Ipad UIImagePickerController and UIPopoverController error

为什么我的弹出窗口不在正确的位置?

最佳答案

如果您的代码基于您所引用的问题,那么您似乎将使用以下代码来显示弹出窗口:

[popoverController presentPopoverFromBarButtonItem:sender
                          permittedArrowDirections:UIPopoverArrowDirectionUp
                                          animated:YES]


UIPopoverController:presentPopoverFromBarButtonItem:permittedArrowDirections:animated为您的UITabBar没有的发送者接受UIBarButtonItem *。 UITabBar使用具有UIBarItem基础的UITabBarItem。 UIBarButtonItem也具有该基数(UIBarItem)。

无论如何...我还需要显示来自tabbaritem的uipopovercontroller,我使用了以下代码:

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];


注意:您的x计算将有所不同。为我选择的选项卡栏项是第六项。
基本上

x = tabBarItemWidth * currentTabBarItemIndex;

关于ios - UIPopoverController放置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5278236/

10-11 19:48