Question

Je me débattais un peu avec ma première vraie application iPhone et je voulais obtenir des conseils sur la manière dont cela devrait être structuré. Je suis à la recherche de meilleures pratiques en matière de création de composants d'interface utilisateur et de liaison entre eux pour créer le flux d'application (création de vues / contrôleurs par programme, par opposition à Interface Builder, etc.).

Présentation:
Je dois afficher un " Connexion " affichage au démarrage de l'application.
--Show " Inscription " voir s’ils cliquent sur le bouton d’inscription.

Une fois connecté ... J'ai un TabBarController qui charge 4 vues. Ces 4 vues devront charger des sous-vues (type maître-détail).

Ma question est la suivante:
1) Quel est le meilleur moyen de reconstituer cette structure de navigation? Créer chaque vue sous forme de fichier .xib avec un ViewController correspondant? Comment sont-ils collés ensemble?

2) Comment dois-je gérer la navigation de connexion / inscription, aucun TabBar ne doit être affiché au démarrage, mais il en aura besoin après l'authentification de l'utilisateur.

Bonus Point) Existe-t-il des meilleures pratiques documentées pour ce genre de choses? J'ai piraté ensemble du code exploitable, mais je me suis perdu et je veux recommencer en le faisant de la bonne façon.

Je sais que cela peut être un peu déroutant. Toute aide est la bienvenue.

EDIT: Pour la vue de connexion au-dessus de la barre d’onglet, j’utilise ceci, assez simple.

LoginViewController *loginViewController = [[LoginViewController alloc] init];
[loginViewController initWithNibName:@"Login" bundle:nil]; 
[self.tabBarController presentModalViewController:loginViewController animated:YES];
Était-ce utile?

La solution

Lorsque vous créez une nouvelle application basée sur la barre d'onglets dans XCode, vous êtes pratiquement déjà configuré comme vous le souhaitez. Il existe un fichier XIB principal qui charge les vues pour chaque onglet à partir de fichiers XIB distincts. Vous avez un XIB par onglet. Notez que lorsque vous modifiez des types ou ajoutez des onglets, vous devez spécifier le type de contrôleur de vue approprié dans le XIB avec la barre d’onglet et dans le XIB que vous utilisez pour créer votre vue!

En ce qui concerne la vue de connexion, une approche commune consiste à utiliser la barre d'onglets comme ci-dessus, mais dans la méthode de l'application déléguée applicationDidFinishLaunching, présentez un contrôleur de vue modale qui affiche l'écran de connexion. Le contrôleur modal masque la barre d’onglet et tout le reste jusqu’à ce qu’ils aient terminé, puis elle peut être ignorée.

Autres conseils

1) Quel est le meilleur moyen de reconstituer cette structure de navigation? Créer chaque vue sous forme de fichier .xib avec un ViewController correspondant? Comment sont-ils collés ensemble?

Utilisez UINavigationController et placez vos vues personnalisées dans la pile de navigation selon vos besoins. Découvrez l'exemple d'application de contrôleur de navigation via l'option Nouveau projet de Xcode pour comprendre comment cela fonctionne.

2) Comment dois-je gérer la navigation Connexion / Inscription, aucun TabBar ne doit être affiché au démarrage, mais il en aura besoin après l'authentification de l'utilisateur.

Configurez une vue pour la connexion (j'utiliserais un UITableView avec une section contenant deux lignes pour le nom d'utilisateur et le mot de passe, mais c'est ma propre préférence). Configurez une deuxième vue distincte pour les champs d’inscription (là encore, j’utiliserais un UITableView pour cela, afin que la présentation reste claire et cohérente).

Utilisez peut-être une animation de vue pour faire apparaître la barre d’onglet après une authentification réussie.

Bonus Point) Existe-t-il des meilleures pratiques documentées pour ce genre de choses? J'ai piraté ensemble du code exploitable, mais je me suis beaucoup perdu et je veux recommencer à nouveau de le faire correctement.

Vous finirez par réécrire votre projet plusieurs fois - ce qui est une bonne chose. Jetez un coup d’œil aux exemples d’applications d’Apple (disponibles sur le site ADC de l’iPhone), car elles contiennent plusieurs "meilleures pratiques". manières d’utiliser plusieurs des composants UIKit . Pour créer une application plus grande, gardez votre conception aussi simple que possible et réutilisez le plus possible de composants d'interface utilisateur d'Apple. Vous pouvez toujours personnaliser plus tard.

À mon avis, seuls les exemples de programmation Cocoa et les applications très simples conviennent à un fichier NIB unique. Sinon, vous devez répartir vos composants d'interface sur plusieurs nibs. Cela signifie que chaque pointe est plus petite et que, une fois chargée en mémoire, ces composants ne seront chargés que si nécessaire. Cela améliorera les performances de votre application et peut vous aider à organiser logiquement votre programme et à faciliter le débogage lorsque des problèmes surviennent.

Dans mes applications de barre de tabulation, j'utilise MainWindow.xib pour contenir la fenêtre principale et la barre de tabulation, mais je divise chaque onglet en un point distinct pour les raisons susmentionnées.

Apple propose les instructions suivantes:

Lors de la création de vos fichiers nib, veillez à respecter les consignes suivantes:

Concevez vos fichiers nib avec le chargement paresseux à l’esprit. Prévoyez de charger immédiatement des fichiers nib contenant uniquement les objets dont vous avez besoin.

Dans le fichier nib principal d'une application Mac OS X, envisagez de stocker uniquement la barre de menus de l'application et un objet délégué d'application facultatif dans le fichier nib. Évitez d'inclure des fenêtres ou des éléments d'interface utilisateur qui ne seront utilisés qu'après le lancement de l'application. A la place, placez ces ressources dans des fichiers nib distincts et chargez-les selon vos besoins après le lancement.

Stockez les composants d'interface utilisateur répétés (tels que les fenêtres de document) dans des fichiers nib distincts.

Pour une fenêtre ou un menu utilisé occasionnellement, stockez-le dans un fichier NIB séparé. En la stockant dans un fichier NIB séparé, vous ne chargez la ressource en mémoire que si elle est réellement utilisée.

Pour plus d'informations, vous pouvez visiter:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4

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