2009-10-14 9 views
0

Je suis en train de coder un plugin MobileSubstrate (une plateforme d'insertion de code sur des appareils jailbreakés) qui va se connecter à safari et à quelques autres applications.iPhone: trouver la vue actuellement la plus "haute"

Ce plugin devra afficher une feuille UIActionSheet. Mais pour ce faire, j'ai besoin de trouver une vue pour l'afficher. Jusqu'à présent, j'utilise showInView: [[UIApplication sharedApplication] keyWindow] mais ce n'est pas la solution parfaite.

Y a-t-il un moyen de trouver la vue la plus haute? plus haut donc UIActionSheet n'est pas couvert par une vue.

Merci d'avance.

Répondre

0

keyWindow est la vue la plus haute. Vous pouvez parcourir les sous-vues de keyWindow, mais dans mon expérience, il est peu probable qu'elles fonctionnent bien - le contrôleur de barre d'onglets est un bon exemple où aucune sous-vue directe n'est vraiment géniale pour ajouter une sous-vue.

Quels problèmes observez-vous lors de l'utilisation de la fenêtre de touches? Le principal ennui serait, que les trucs keywindow ne sont pas tournés correctement en mode paysage ...

+0

bien, par exemple dans Tweetie2, quand tweetie veut autoriser un nouveau compte il y a un popup, une boîte grise avec ActivityIndicator à l'intérieur, mon action feuille est derrière cela et ne peut pas être "touché". puisque j'utilise des méthodes déléguées j'ai essayé d'utiliser une boucle dans la méthode qui crée la feuille d'action et insérée dedans [[[UIApplication sharedApplication] keyWindow] bringSubviewToFront: actionSheet]; mais cela n'a pas fonctionné. le popup reste devant ma ActionSheet:/ J'espère que vous obtenez ce que je veux dire (mon pauvre anglais: D) – Yllier

+0

Tricky, peut-être vous pourriez également remplacer addSubview sur UIWindow et tout ce qui n'est pas votre fenêtre, se définit comme une sous-fenêtre de ta fenêtre? –

+0

ou peut-être un moyen d'obtenir toutes les vues et ensuite mettre le mien sur le dessus? – Yllier

Questions connexes