C'è qualcosa di sbagliato nella commutazione delle viste impostando il controller di visualizzazione root?

StackOverflow https://stackoverflow.com/questions/5990475

  •  13-11-2019
  •  | 
  •  

Domanda

Mi chiedevo se quanto segue fosse un modo accettato per cambiare visione?

Appdelegate.m

- (IBAction) switchViews
    {
    if (self.window.rootViewController == self.viewController) {
        self.window.rootViewController = self.settingsNavigationViewController;
    } else {
        self.window.rootViewController = self.viewController;
    }
}

Sia ViewController che ImpostassNavigationViewController vengono caricati dai file NIB al momento dell'avvio dell'applicazione.

La vista principale (ViewController) contiene una ScrollView con 3 visualizzazioni di immagini per l'infinito effetto di scorrimento, nonché una barra di ricerca nella parte superiore e una barra degli strumenti in basso.

La seconda vista è per le mie impostazioni dell'applicazione. È un controller di navigazione che si comporta in modo simile a un pacchetto di impostazioni.

Entrambe le viste hanno un pulsante che chiama SwitchViews;

Devo ristrutturare la mia app o è un buon modo per farlo o devo ristrutturare la mia app?

È stato utile?

Soluzione

Sebbene sia possibile farlo, (la documentazione delle mele spiega qui e non sembra impedirlo

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiwindow_class/uiwindowclassreference/uiwindowclassreference.html%23//apple_ref/occ/instp/uiwindow/rootviewcontroller

)

Significa anche che le viste esistenti vengono rimosse ..

Ha sicuramente un po 'di odore di codice al riguardo. Poiché si tratta di una finestra di dialogo Impostazioni, perché non caricare il controller di navigazione delle impostazioni in una vista modale come di seguito (in modo simile a quello seguente). Personalmente questo sembra un po 'più pulito e un po' più coerente con ciò che un utente potrebbe aspettarsi ...

[[self.viewController] presentModalViewController:self.settingsNavigationViewController animated:YES];

Altri suggerimenti

Penso che devi usare TabbarController.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top