2009-12-10 8 views
1

Je dois ajouter une vue à la fenêtre sur l'iPhone, donc j'ai essayé de le faire: [[UIApplication sharedApplication] windows], mais il semble que le tableau ne contient qu'une seule fenêtre.ne renvoie pas de fenêtres

Quelqu'un peut-il me dire ce que je ne fais pas écrire/ce que je dois faire?

+0

Voir cette réponse: http://stackoverflow.com/a/15623745/308315 – iwasrobbed

Répondre

1

Eh bien, j'ai trouvé le problème. En fait, les conditions ne sont pas correctes, [[UIApplication sharedApplication] windows] n'a renvoyé qu'une seule fenêtre. Encore, [[UIApplication sharedApplication] keyWindow] jeter une exception.

C'est parce que Quand MPVideoPlayerController commence à jouer, il commence à créer une nouvelle fenêtre, mais ne termine probablement pas ce travail immédiatement. Il est créé PRESQUE immédiatement, mais pas immédiatement.

3

essayer

[[UIApplication sharedApplication] keyWindow]; 

si vous voulez trouver la fenêtre de votre application.

+0

Cela ne fonctionne pas. J'ai essayé. – mxg

+0

Si [[UIApplication sharedApplication] windows] ne retient rien, alors [[UIApplication sharedApplication] keyWindow] lancera une exception – mxg

+0

hmmm .... c'est très étrange. où dans votre application appelez-vous cette méthode? – Morion

2

Votre classe AppDelegate tiendra la fenêtre (en tant que propriété). Vous obtenez seulement une fenêtre par application. Dans la plupart des cas, vous ne devez ajouter des vues directement à la fenêtre qu'à partir de AppDelegate. Pour une gestion de sous-vue normale, utilisez viewControllers.

+0

MPMoviePlayerController semble commencer dans une fenêtre différente, mais j'en ai besoin pour ajouter une superposition dans la fenêtre de MoviePlayer. – mxg

+0

Ah, je vois. J'ai trouvé ce post à ce sujet, qui prétend être en mesure de le faire sur 3.0: http://amromousa.com/2009/03/22/overlay-uiview-on-mpmovieplayercontroller/ mais, l'avertissement habituel - Apple pourrait obtenir furieux. –

0

Vous pourriez faire quelque chose comme ceci.

UIView *controllersView = [myViewController view]; 

[window addSubview:controllersView]; 
+0

Il est sur la fenêtre vidéo. Donc je n'ai pas accès à la vue. – mxg

+0

Et d'où vient cette variable "fenêtre"? – nash

Questions connexes