2009-11-29 5 views
0

Le programme sur lequel je travaille en ce moment est un peu lourd, car il commence par un menu central, et quand l'utilisateur choisit une option, il ouvre sa sélection dans une nouvelle fenêtre, quand j'ai un bonne fenêtre je peux (au moins apparemment) réapparaître à cet effet. J'ai lu the manual en ce qui concerne les vues, et je comprends de quoi il parle en ce qui concerne la hiérarchie des vues et autres, mais la méthode d'échange quelle vue est active me confond. Que dois-je faire pour "balayer" le menu initial et le remplacer par une autre vue contenant le contenu sélectionné par l'utilisateur?Comment changer la vue active dans une fenêtre?

Répondre

1

J'ai trouvé une solution simple en utilisant NSTabView pour contenir chacune des vues que je recherchais.

0

Il semble que vous ne souhaitiez pas du tout changer de vue, mais modifiez le modèle que vous avez chargé dans les vues. La manière la plus simple est probablement de donner au contrôleur pour la fenêtre une propriété par laquelle les vues peuvent accéder à un autre contrôleur qui possède une partie du modèle (un tel contrôleur pour chaque élément dans le menu). Ensuite, vous changez simplement ce contrôleur.

Dans le setter pour cette propriété, vous devrez peut-être envoyer des messages tels que reloadData à certaines vues, en fonction du type de vues. Les vues qui observent des modifications à l'aide de liaisons ou de KVO n'auront pas besoin de cela.