0

我有一个 mainViewController 并在它的 nib 文件中添加了一个信息按钮,其中的操作是在两个子视图之间翻转,子视图 A 和子视图 B。

在 mainViewController 的 viewDidLoad 下,我正在插入子视图 A。这里我注意到信息按钮位于子视图 A 的前面,这很好。

问题来了,当按下位于子视图 A 的 nib 文件中的任何按钮时,它们会在其中添加新的子视图,信息按钮仍位于前面。

那么,如何在所有父视图堆栈的前面添加这些后来的子视图,这样信息按钮就不会出现?或者我怎样才能隐藏信息按钮?

4

1 回答 1

1

如果我理解正确,您的 mainViewController 的视图有两个超级视图:subView A 和 infoButton。您想将子视图添加到出现在 infoButton 视图上的 subviewA 吗?

简单的答案是你不能让 subviewA 的子视图出现在 infoButton 视图上。如果您将视图层次结构视为一棵树,则渲染器会以深度优先的方式绘制视图。这意味着它会在考虑 infoButton 视图之前绘制 subviewA 和所有 subviewA 的子视图(等等)。如果您希望视图出现在 infoButton 视图之上,则需要将其作为 infoButton 的兄弟添加到主视图的子视图列表中的 infoButton之后。

如果您想隐藏 infoButton,您可以简单地将hidden属性设置为 YES,然后在您希望 infoButton 视图重新出现时将其设置为 NO,当然。

根据您对 subviewA 所做的操作,您可能会考虑使用模式视图控制器或导航控制器来管理您在用户与 subviewA 交互时添加的视图。

于 2010-11-07T05:23:02.193 回答