查找类型视图

时间:2011-03-14 07:49:05

标签: iphone uiview isa

我这是我的第一个iphone应用程序。我的应用程序显示不同的视图,并从最小化模式返回。我想确定当前显示哪些视图。  我尝试在"isa"事件中使用applicationDidEnterForeground()。 但是,我认为我不正确。

2 个答案:

答案 0 :(得分:0)

您可以使用tag属性标记您的视图,并使用它来标识特定视图。这可能会更好,因为tag属性将识别类的实例而不仅仅是类类型。

如果要检查类的类型,可以使用NSObject协议实例方法:

- (BOOL)isKindOfClass:(Class)aClass

- (BOOL)isMemberOfClass:(Class)aClass

使用对象的class实例方法返回对象的类。 isKindOfClass:如果实例的类与提供的类相同(或者是该类的子类),则返回true,其中 isMemberOfClass:返回true,如果实例的类与提供的类完全相同。例如:

if ([myObject isMemberOfClass:[UITableView class]])
{
    // Do stuff
}

答案 1 :(得分:0)

据我所知,使用isa并不是这个问题的核心 - isa与类身份有关,但你的核心问题实际上是找出类实例你需要识别!您在访问isa属性的是什么?

This question可能与此有关 - 特别是我的答案的这一部分:

  

没有开箱即用的方式   这是'当前'   顺便提一下UIViewController。但是你   可以找到解决方法,例如那里   是代表的方法   用于查找的UINavigationController   当呈现UIViewController时   在其中。你可以使用这样的东西   跟踪最新的UIViewController   已经提出。

可能有用的东西:因为iOS4,UIWindow有一个属性rootViewController,它被设置为当前的根视图控制器。显然,这可能是UINavigationController或其他一些UIViewController聚合器,因此在这种情况下你仍然需要做一些工作......