UIPopoverController显示在错误的位置

时间:2010-09-15 22:27:54

标签: ipad uipopovercontroller

我在窗口内切换视图。方向有时会混淆。

在其中一个窗口中,当我尝试显示应附加到工具栏按钮的弹出窗口时,它会显示在屏幕上的位置。如果我实际更改了设备的方向,则会在正确的位置重绘弹出窗口。如果我再次将其切换回来,则会将其绘制在正确的位置。如果我解除了弹出窗口并尝试再次显示它,它会再次显示在错误的位置。

建议表示赞赏。

2 个答案:

答案 0 :(得分:1)

此处当您从视图中显示弹出控制器时,首先需要检查您现在拥有的orinetation,并根据您可以选择框架的方向并从当前视图打开弹出控制器。你可以这样做:

    if(UIAppDelegate.intOrientation == 1)
    {
        popoverController.popoverContentSize = CGSizeMake(570, 720);
        [self.popoverController presentPopoverFromRect:CGRectMake(100, 150, 570, 720) inView:self.view permittedArrowDirections:NO animated:YES];
    }
    else
    {
        popoverController.popoverContentSize = CGSizeMake(820, 500);
        [self.popoverController presentPopoverFromRect:CGRectMake(102, 135, 820, 500) inView:self.view permittedArrowDirections:NO animated:YES];
    }

答案 1 :(得分:1)

问题消失了,不知道为什么。我在Apple开发人员的支持下打开了一个问题。他们查看了我的代码,并提出了几个未记录的指南。

一个是不要在切换视图之间混合屏幕方向。让他们一直支持景观与否,肖像与否。

他们还说只有一个控制器应该一次管理屏幕。

这个问题在iPad上出现了iOS4.2。不知道这是否适用。