首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找typeof视图

查找typeof视图
EN

Stack Overflow用户
提问于 2011-03-14 15:49:05
回答 2查看 99关注 0票数 0

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-14 15:57:39

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

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

代码语言:javascript
复制
- (BOOL)isKindOfClass:(Class)aClass

代码语言:javascript
复制
- (BOOL)isMemberOfClass:(Class)aClass

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

代码语言:javascript
复制
if ([myObject isMemberOfClass:[UITableView class]])
{
    // Do stuff
}
票数 0
EN

Stack Overflow用户

发布于 2011-03-14 16:11:00

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

不过,This question可能是相关的--特别是我答案的这一部分:

顺便说一下,

没有现成的方法来区分哪个是“当前”的UIViewController。但是你可以找到绕过这一点的方法,例如,有UINavigationController的委托方法来找出UIViewController何时出现在其中。您可以使用这样的东西来跟踪已呈现的最新UIViewController。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5295989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档