2012-09-11 92 views
0

我在制作iPad应用程序。导航控制器视图作为ViewController中的子视图

我希望我的应用程序的设计包括屏幕的一部分iPhone的大小,这将有一个窗体风格的分组表视图。用户可以使用它来编辑/添加信息。

其中一个表格视图的“按钮”(行)将有一个披露图标作为附件视图,当点击时,我想滑动该表格的另一个视图。

理想我想一个UINavigationController's视图添加到屏幕上的部分(在视​​图控制器的视图)说:

CGRectMake(self.view.frame.size.width/2, 20, 320, 400); 

但随着苹果的文件说,你不应该使用的导航控制器这样(作为现有视图控制器的子视图)。

我能做些什么来模仿或解决方法来获得此?

回答

0

创建一个适合该区域的UIView,并让该视图托管表格以及任何你想要的东西。如果您需要按导航栏“推送”视图,则可以使用视图动画或UIView的转换方法。如果我这样做了,我可以创建一个“助手”类来管理所有这些视图和控件 - 或者至少是您现有类的一个类别 - 以避免混淆主类。

1

我已经看到它完成了,它确实会在你显示的控制器上带来一些关于viewWillAppear/willRotate/etc方法的小故障。

解决方法是在添加/删除导航控制器时手动调用navigator控制器上的viewWillAppear/etc,但这不是最好的方法。

另一种方式去是显示在非dismissable酥料饼,你可以通过实现UIPopoverController委托函数实现此控制器:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController { 
    return NO; 
} 

这将使得用户无法通过单击驳回在它之外。您可以通过酒吧按钮项目(它将在旋转后自动定位)或从矩形(您将不得不在旋转后重新定位它)显示弹出窗口,但您可以不显示“弹出窗口方向箭头”,使其成为“悬停“在你的父视图控制器上。

+0

它出现在屏幕上,但我无法调整它!我试着这样:'UIViewController * editVC = [[UIViewController alloc] init]; editVC.tableView.frame = CGRectMake(0,0,320.0,480.0); UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:editVC]; navController.view.frame = CGRectMake(20.0,20.0,320.0,480.0); [self.view addSubview:navController.view];' –

+0

简而言之,我已经看到了我的观点......但我似乎无法将其调整到所需的尺寸。 –

相关问题