Y a-t-il quelque chose qui ne va pas avec les vues de commutation en définissant le contrôleur de vue racine?

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

  •  13-11-2019
  •  | 
  •  

Question

Je me demandais si ce qui suit est un moyen accepté de changer de vue?

Appdelegate.m

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

ViewController et SettingsNavigationViewController sont chargés à partir des fichiers NIB lorsque l'application sera lancée.

La vue principale (ViewController) contient un ScrollView avec 3 vues d'image pour l'effet de défilement infini, ainsi qu'une barre de recherche en haut et une barre d'outils en bas.

La deuxième vue concerne mes paramètres d'application. Il s'agit d'un contrôleur de navigation qui fonctionne de manière similaire à un bundle de paramètres.

Les deux vues ont un bouton qui appelle SwitchViews;

Dois-je restructurer mon application ou est-ce une bonne façon de le faire ou dois-je restructurer mon application?

Était-ce utile?

La solution

Bien qu'il soit possible de le faire, (Apples Documentation explique ici et ne semble pas empêcher cela

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

)

Cela signifie également que vos vues existantes sont supprimées.

Il a certainement un peu d'odeur de code à ce sujet. Comme il s'agit d'une boîte de dialogue Paramètres, pourquoi ne pas charger votre contrôleur de navigation paramètres dans une vue modale comme ci-dessous (de la même manière que ci-dessous). Personnellement, cela semble un peu plus propre et un peu plus cohérent avec ce à quoi un utilisateur peut s'attendre ...

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

Autres conseils

Je pense que vous devez utiliser TabbarController.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top