2011-03-14 19 views
0

我這是我的第一個iphone應用程序。我的應用程序顯示不同的視圖,並從最小化模式返回。我想確定當前顯示哪些視圖。 我嘗試在applicationDidEnterForeground()事件中使用"isa"。 但我認爲我不正確。查找typeof查看

回答

0

您可以使用tag屬性來標記您的視圖並使用它來標識特定的視圖。這可能會更好,因爲tag屬性將識別類的實例,而不僅僅是類類型。

如果你想雖然檢查類的類型,你可以使用NSObject的協議實例方法:

- (BOOL)isKindOfClass:(Class)aClass 

- (BOOL)isMemberOfClass:(Class)aClass 

您使用對象的class實例方法來回報對象的類。 isKindOfClass:如果實例的類與提供的類相同(或者它是該類的子類),則返回true,其中isMemberOfClass:如果實例的類與該實例的類完全相同,則返回true一個提供。例如:

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

這個信息並不能真正幫助但回答他的問題 - 他需要的一些方法訪問當前顯示的視圖。 – occulus 2011-03-14 08:07:36

+0

對不起,「isa」位把我扔了。有關從UIApplicationDelegate類訪問視圖的問題,看我在這裏所作的答案:http://stackoverflow.com/questions/5290622/access-method-in-viewcontroller-from-appdelegate/5290755#5290755 – 2011-03-14 08:37:38

0

使用isa是不是真的這個問題的核心,只要我能看到 - isa與階級身份的事,但在這裏,你的核心問題實際上是查不到的類實例你需要識別!你在訪問isa屬性時是什麼?

This question可儘管有關 - 尤其是我的答案,這部分:

有沒有現成的方式告訴 這是「當前」 的UIViewController的方式。但你可以找到解決辦法,例如 是代理方法 UINavigationController用於在UIViewController在其中呈現 時找出 。你可以使用這樣的東西來 追蹤已經呈現的最新UIViewController 。

東西這可能是有用的:因爲iOS4的,UIWindow具有被設置爲當前的根視圖控制器屬性rootViewController。很明顯,這可能是一個UINavigationController或一些其他的UIViewController聚合,所以你仍然不得不做了一些工作,在這種情況下...