为什么我的观点相互重叠?

时间:2011-05-06 22:43:31

标签: cocoa-touch ios uiview

我只是无法理解观点的事情,并以某种方式找不到一个明确的解决方案。

我有一个视图“A”,它有一个按钮可以转到另一个视图“B”。视图B带我去查看C,视图C带我回到A。

在视图C中,在用户点按的任何地方,他都会看到一个图像。其代码在视图C的.m文件中。

问题是当我从视图C切换到A时,C的代码仍然在视图A上工作?如果我点击A,我会在任何地方看到该图像,但A是我的菜单而不是游戏的一部分。使图像显示在点击上的方法仅属于视图C!

我无法理解这些观点;在开始时我使用insertSubview:atIndex:,一切都重叠,所以现在我使用addSubview:,我遇到了这个问题。

有人可以从几何上解释这是如何工作的吗?

为什么在视图中看到视图C中的按钮有时候没有理由?为什么在加载C并返回A之后,它在视图A上实现了C的代码?

为什么我的观点一直都在重叠?我希望每个视图能够单独工作,而不是从它背后的视图中看到任何东西,或者从过去加载的视图中实现代码。

请帮助我了解我的观点。非常感谢。

2 个答案:

答案 0 :(得分:1)

您可能希望专注于UIViewControllers而不是视图。有了这个,你就不会有这个问题,UIViewController几乎总是全屏,你可以专门为它编码。您可以创建三个UIViewController子类,一个用于A,B和C.在每个nib中,您可以添加一个按钮,并使用它来呈现下一个视图控制器(可能使用presentModalViewController :)。在第三个子类中,您可以实现逻辑,以便在用户点击时显示图像。

答案 1 :(得分:0)

一个好的做法,就是说你有一个

UIViewController * myViewController 有3个属性:

UIVIew * viewA

UIView * viewB

UIView * viewC

如果你想要diplay将viewA放在堆栈上,只需设置

myViewController.view = viewA;

等等!