ios - UIPopoverController 放置

标签 ios ipad orientation uipopovercontroller

我正在开发一个应该是通用的应用程序,一个适用于 iPad 和 iPhone 的应用程序。我想让他们的界面尽可能相似。在 iPhone 应用程序中,我使用的是选项卡栏 Controller ,其中一个选项卡转到图像选择器 Controller 。显然我不能在 iPad 上这样做。所以我劫持了那个按钮的控制权来带来一个带有图像选择器的弹出 Controller 。这一切都很好,除了当我弹出弹出窗口时,它不在正确的位置。当我旋转模拟器时,弹出窗口会转到正确的位置,并在我向后旋转时保持不变。

我的代码是基于这个问题中的代码: 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 计算会有所不同。为我选择的标签栏项目是第 6 个。 基本上

x = tabBarItemWidth * currentTabBarItemIndex;

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

相关文章:

ios - 切换 ViewController 时的 UISwitch/UISlider 值

ios - 在屏幕上设置键盘

ios - Swift 编译器警告 : Result of call to 'save(defaults:)' is unused

ios - 当窗口缩小以适合Xcode 9中的监视器时,防止模拟器屏幕截图缩小

iPhone如何在旋转设备时正确调整 View 大小

ios - 使用 Openweathermap 获取名称中包含空格的城市的天气

jquery - 更改焦点表单元素时禁用滚动 ipad Web 应用程序

ios - TestFlight 内部测试人员和 UDID

ios - uiscreen SWIFT 的旋转

ios - 我应该在我的 iOS 应用程序中启用还是禁用颠倒?