详细视图仅显示在屏幕的表区域中?

时间:2011-08-13 15:33:31

标签: iphone objective-c ios uitableview uinavigationcontroller

我希望能够显示表格的详细视图,但不能推送新的屏幕,而只显示表格的详细视图。

设置此项的最佳方法是什么?如果实际可行的话?

------------------------------------
|                                  |
|           nav bar or tool bar    |
------------------------------------
|                                  |
|        this area stays static    |
|                                  |
------------------------------------                ---------------------------------
|                                  |                |                               |
|                                  |                |                               |
|                                  |                |                               |
|           table…                 |                |  new uitableview pushed.      |
|                                  | cell clicked-> | only the table area changes   |
|                                  |                |                               |
|                                  |                |                               |
|                                  |                |                               |
------------------------------------                ---------------------------------
|      |      |      |      |      |
|      |      |      |      |      | < tab bar
|      |      |      |      |      |
------------------------------------

4 个答案:

答案 0 :(得分:1)

如果你想要一个类似于推动UIViewController的效果,我猜你可以为tableview设置动画,并同时为新视图设置动画。我认为没有办法使用实际的UINavigationController机制,因为它用新的viewcontroller视图替换UINavigationController堆栈上的当前视图。

答案 1 :(得分:1)

我建议两种方法:

  1. uitableView插入UIView,这样您就会始终引用一个容纳非常合适视图的容器。您还需要管理此表视图的子subviews的帧大小。在您的情况下,它将是第一个uitableview和按钮点击下一个子视图可以使用parent container的引用添加。
  2. 或者,你可以拥有一个宏,它相对于父UIView具有uitableview's frame的位置。在插入另一个子视图时,您可以设置框架,以便在基座uitableview上方留下重叠的印象。

答案 2 :(得分:0)

在表格视图的顶部放置另一个视图并将其隐藏起来。设置内容并在需要时取消隐藏。

答案 3 :(得分:0)

最好的方法,在我看来解决这个问题的方法是使用一个UINavigationController,它没有显示导航条并且没有填满屏幕。因此,您的静态区域只是普通的UIView,但您的表视图实际上位于UINavigationController内,但看起来它是一个普通的表 - 因为导航栏是隐藏的。

这意味着您可以将“动态”内容推送到UINavigationController,这会激活屏幕的该部分,但屏幕的其余部分将保持静态。