在我当前的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 中的任何一行时,弹出视图确实会出现,但它的位置完全偏离,其底部会被切断。
有人能告诉我我做错了什么以及如何纠正它?
答案 0 :(得分:2)
[UIViewController presentModalViewController::]
假设您的视图控制器是根控制器,或者它位于控制器层次结构中的某个位置。当你说你的控制器视图是SplitViewController
的子视图时,它们也是它的子控制器吗?您应该尝试从SplitViewController
呈现模态控制器,或检查您的控制器是否是它的子控制器(iOS 5中的新功能)。