这是我的第一个iphone应用程序。I应用程序显示不同的视图,并从最小化模式返回。我想确定当前显示的是这些视图中的哪些。我尝试在applicationDidEnterForeground()事件中使用"isa"。然而,我认为我是不正确的。
发布于 2011-03-14 15:57:39
您可以使用tag属性来标记视图,并用它来标识特定的视图。这可能更好,因为tag属性将标识类的实例,而不仅仅是类类型。
但是,如果您想检查类的类型,可以使用NSObject协议实例方法:
- (BOOL)isKindOfClass:(Class)aClass或
- (BOOL)isMemberOfClass:(Class)aClass使用对象的class实例方法返回对象的类。isKindOfClass:如果实例的类与提供的类相同(或者它是该类的子类),则返回true;如果实例的类与提供的类完全相同,则as isMemberOfClass:返回true。例如:
if ([myObject isMemberOfClass:[UITableView class]])
{
// Do stuff
}发布于 2011-03-14 16:11:00
据我所知,使用isa并不是这个问题的核心-- isa与类标识有关,但这里的核心问题实际上是找出需要标识的类实例!您访问isa属性的对象是什么?
不过,This question可能是相关的--特别是我答案的这一部分:
顺便说一下,
没有现成的方法来区分哪个是“当前”的UIViewController。但是你可以找到绕过这一点的方法,例如,有UINavigationController的委托方法来找出UIViewController何时出现在其中。您可以使用这样的东西来跟踪已呈现的最新UIViewController。
一些可能有用的东西:由于iOS4,UIWindow有一个属性rootViewController,它被设置为当前的根视图控制器。显然,这可能是一个UINavigationController或其他一些UIViewController聚合器,所以在这种情况下,您仍然需要做一些工作……
https://stackoverflow.com/questions/5295989
复制相似问题