Come si modifica la vista attiva in una finestra?
-
06-07-2019 - |
Domanda
Il programma su cui sto lavorando in questo momento è un po 'complicato, in quanto inizia con un menu centrale, quindi una volta che l'utente sceglie un'opzione da esso apre la sua selezione in una nuova finestra, quando ho un finestra perfettamente buona che posso (almeno apparentemente) riutilizzare in tal senso. Ho letto il manuale per quanto riguarda le viste, e capisco di cosa parla riguardo alla gerarchia delle viste e simili, ma il metodo di scambio di quale vista è attiva mi confonde. Che cosa devo fare per farlo "spazzare via" il menu iniziale e sostituirlo con un'altra vista contenente il contenuto selezionato dall'utente?
Soluzione
Trovato una soluzione semplice usando NSTabView
per contenere ciascuna delle viste che sto cercando.
Altri suggerimenti
Sembra che tu non voglia cambiare vista, ma cambia il modello che hai caricato nelle viste.
Il modo più semplice è probabilmente quello di assegnare al controller per la finestra una proprietà in base alla quale le viste possano accedere a un altro controller che possiede una parte del modello (uno di questi controller per ogni elemento del menu). Quindi, cambia semplicemente quel controller.
Nel setter per quella proprietà, potrebbe essere necessario inviare messaggi come reloadData
ad alcune visualizzazioni, a seconda del tipo di visualizzazioni che sono. Le viste che osservano per le modifiche usando Bindings o KVO non avranno bisogno di questo.