在Ipad中使用presentModalViewController的问题

时间:2011-04-11 16:29:32

标签: modalviewcontroller ipad

在我当前的Ipad应用程序中,我有一个分屏视图,其中详细视图是一个包含4个表视图的滚动视图。我试图实现的功能是,当我在滚动视图中单击表格的任何一行时,会显示一个包含其他信息的屏幕,我使用presentModalViewController尝试获取此功能。

举例来说,我有3个文件aViewController,bViewController,cViewController ..我在我的项目的appDelegate文件中编写了splitViewController的代码,我将3个视图控制器(aViewController,bViewController,cViewController)作为子视图 splitViewController ...

现在在我的一个ViewControllers中,比如 aViewController ,在 didSelectRowAtIndexPath 中,我按如下方式添加代码

这就是我所做的,

PopOverControllerContents *popContents = 
        [[PopOverControllerContents alloc] 
         initWithNibName:@"PopOverControllerContents" 
         bundle:[NSBundle mainBundle]];
 popContents.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:popContents animated:YES

我想提到的一件重要事情是,我的应用程序的默认方向是横向模式,因此我将PopOverControllerContents的方向更改为横向方向。

当我构建并运行时,当我点击 aViewController 中的任何一行时,弹出视图确实会出现,但它的位置完全偏离,其底部会被切断。

有人能告诉我我做错了什么以及如何纠正它?

1 个答案:

答案 0 :(得分:2)

[UIViewController presentModalViewController::]假设您的视图控制器是根控制器,或者它位于控制器层次结构中的某个位置。当你说你的控制器视图是SplitViewController的子视图时,它们也是它的子控制器吗?您应该尝试从SplitViewController呈现模态控制器,或检查您的控制器是否是它的子控制器(iOS 5中的新功能)。