2011-03-14 4 views
0

I c'est ma première application iphone. L'application montre une vue différente et revient du mode minimisé. Je veux identifier laquelle de ces vues est actuellement affichée. J'ai essayé d'utiliser "isa" dans l'événement applicationDidEnterForeground(). Cependant, je pense que je ne suis pas correct.Trouver typeof Voir

Répondre

0

Vous pouvez utiliser la propriété tag pour marquer votre point de vue et l'utiliser pour identifier des vues particulières. Cela peut être préférable car la propriété tag identifie les instances des classes, par opposition au type de classe.

Si vous voulez vérifier le type de classe bien, vous pouvez utiliser les méthodes d'instance de protocole NSObject:

- (BOOL)isKindOfClass:(Class)aClass 

ou

- (BOOL)isMemberOfClass:(Class)aClass 

Vous utilisez la méthode d'instance class d'un objet à un retour la classe d'un objet. isKindOfClass: renvoie true si la classe de l'instance est la même que celle fournie (ou est une sous-classe de cette classe), où isMemberOfClass: renvoie true si la classe de l'instance est exactement la même que un fourni. Par exemple:

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

Cette information n'aide pas vraiment à répondre à sa question - il a besoin d'un moyen de accéder à la vue actuellement affichée. – occulus

+0

Ah désolé, le "isa" peu m'a découragé. Pour une question sur l'accès aux vues de la classe UIApplicationDelegate, voir la réponse que j'ai faite ici: http://stackoverflow.com/questions/5290622/access-method-in-viewcontroller-from-appdelegate/5290755#5290755 –

0

à l'aide isa n'est pas vraiment le cœur de ce problème pour autant que je peux voir - isa a à voir avec l'identité de classe, mais votre problème de base est en fait de trouver ici sur l'instance de classe que vous besoin d'identifier! Pourquoi aviez-vous accès à la propriété isa?

This question peut être lié si - en particulier cette partie de ma réponse:

Il n'y a pas de la route de la boîte à dire qui est le « courant » UIViewController par la voie. Mais vous pouvez trouver des moyens autour de cela, par exemple. il sont des méthodes de délégué de UINavigationController pour découvrir lorsqu'un contrôleur UIViewController y est présenté . Vous pouvez utiliser une telle chose pour suivre le dernier UIViewController qui a été présenté.

Quelque chose qui peut être utile: depuis iOS4, UIWindow possède une propriété rootViewController qui est réglé sur le régulateur de courant de vue racine. Évidemment, il peut s'agir d'un UINavigationController ou d'un autre agrégateur UIViewController, vous devrez donc faire un peu de travail dans ce cas ...