如果我有其在3层对应的功能,即定义了3周不同的观点:如何确定当前视图这是对显示
- (UIView *)getView1 { /*...*/ }
- (UIView *)getView2 { /*...*/ }
- (UIView *)getView3 { /*...*/ }
这些是必需的特定视图当加入到self.view
。
我的问题是,我们如何知道当前正在显示哪些视图?是否有一个参数可以识别哪个视图是当前视图?
如果我有其在3层对应的功能,即定义了3周不同的观点:如何确定当前视图这是对显示
- (UIView *)getView1 { /*...*/ }
- (UIView *)getView2 { /*...*/ }
- (UIView *)getView3 { /*...*/ }
这些是必需的特定视图当加入到self.view
。
我的问题是,我们如何知道当前正在显示哪些视图?是否有一个参数可以识别哪个视图是当前视图?
您可标记每个视图与的整数,并且后来读取标签,以确定哪些图是活性(假设要更换self.view
)。
#define TAG_VIEW_1 1
#define TAG_VIEW_2 2
#define TAG_VIEW_3 3
...
[ [self getView1()] setTag:TAG_VIEW_1 ];
[ [self getView2()] setTag:TAG_VIEW_2 ];
[ [self getView3()] setTag:TAG_VIEW_3 ];
...
if (self.view.tag == TAG_VIEW_1) {
// do something
}
else if (self.view.tag == TAG_VIEW_2) {
// etc
}
...
假设当改变他们可以使用[自上海华],以确定哪一个是当前显示的要删除从self.view其它两个视图。
所有的UIView的时候都被显示在一个窗口它,当它被删除设置为nil被设置一个window property。你可以在窗口属性的值,看看是否正在显示在窗口中的视图:
BOOL isDisplayed = self.view.window != nil;
您还可以覆盖willMoveToWindow:中的UIView的子类,每当视图添加到它会被称为或从窗口中移除。
如何将视图添加到self.view?你使用[self.view addSubview:...],如果是这样,你是否先删除现有的子视图?多一点信息会有所帮助。 – 2008-12-17 18:39:43