0

我正在制作一个 iPad 应用程序。

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

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

理想情况下,我会将UINavigationController's视图添加到屏幕上的某个部分(在视​​图控制器的视图上)说:

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

但正如 Apple 文档所说,您不应该以这种方式使用导航控制器(作为现有视图控制器上的子视图)。

我能做些什么来模仿或解决这个问题?

4

2 回答 2

1

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

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

另一种方法是在不可关闭的弹出框上显示此控制器,您可以通过实现 UIPopoverController 委托函数来实现:

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

这将使用户无法通过单击外部来关闭它。您可以从条形按钮项目(旋转后自动定位)或矩形(旋转后必须重新定位)显示弹出框,但您可以不显示弹出框方向箭头,以使其“悬停”在您的父视图控制器上。

于 2012-09-11T21:22:10.713 回答
0

创建一个适合该区域的 UIView,并让该视图托管表格和您想要的任何其他内容。如果您需要像导航栏一样“推送”视图,您可以使用视图动画或 UIView 的转换方法。如果我这样做,我可以创建一个“帮助”类来管理所有这些视图和控件——或者至少是现有类的一个类别——以免弄乱你的主类。

于 2012-09-11T21:19:20.967 回答