Avoir un UITabBar ET un UINavigationController dans une application?
Salut tout le monde, je suis nouveau sur le développement iPhone et je ne suis pas la compréhension de l'ensemble de la UINavigationController et UITabBarController idée. Est un substitut pour les autres - comment faire des applications telles que Tweetie combiner les deux?
J'aimerais avoir mon application ont une persistance de la Barre d'Onglet @ le bas (ce qui semble être au travail), mais aussi une barre de Navigation en haut de page qui peut push/pop vues sur l'écran sans le supprimer de la barre d'onglet.
- Comment puis-je accomplir?
- Quelle devrait être la hiérarchie ressembler à de l'IB en ce qui concerne ma MainWindow.xib en ce qui concerne l'ensemble de ces contrôleurs?
- Quelles sont les meilleures pratiques?
Merci beaucoup,
Directement à partir de la Tweetie du codeur de la bouche: stackoverflow.com/questions/576764/...
OriginalL'auteur barfoon | 2010-02-26
Vous devez vous connecter pour publier un commentaire.
Juste envelopper la-vue-contrôleur à l'intérieur de la
UINavigationController
et de la Place de laUINavigationController
à l'intérieur de laUITabBar
.Cela fonctionnera bien pour vous...
Exemple:
de cette façon, je ne réussis pas dans la désignation de la barre de navigation et la barre d'onglet de l'élément avec deux noms différents. Est-il un moyen de le faire?
OriginalL'auteur Manjunath
Utiliser l'assistant pour un Onglet de la Barre de l'Application, et de le configurer comme d'habitude. Dans l'onglet où vous souhaitez ajouter une manette de navigation, créer dans le XIB à l'aide de la bibliothèque. Mon XIB a:
Remarque qu'il n'y a pas quelque chose dans la vue. Voir viewDidLoad ci-dessous pour l'emplacement de l'UINavigationController sont attachées à la UIView.
Dans le fichier d'en-tête de l'Onglet du ViewController (que j'ai appelé ici DescriptiveNameNavViewController -- il n'y a pas une norme particulière pour cela, mais je l'utilise [quelque Chose]NavViewController pour me rappeler que ce ViewController contient une manette de navigation avec la navigation de la pile. C'est le nom du contrôleur que j'ai mis dans la MainWindow.xib que l'assistant génère) Mis en place un UINavigationController * IBOutlet qui a la manette de navigation dans le XIB relié:
Dans le contrôleur pour la DescriptiveNameNavViewController , faire quelque chose comme ceci:
Paramètre le délégué de l'DescriptiveNameNavViewController est super important, parce que sinon vous n'obtiendrez pas les méthodes disant que vous vous attendez dans DescriptiveNameViewController instances et tout ce que vous poussez sur la manette de navigation de la pile.
Dans DescriptiveNameNavViewController, de mettre en œuvre la UINavigationControllerDelegate méthodes comme ceci:
Et qui va provoquer des messages se propage à des contrôleurs à l'intérieur de la UINavigationController comme vous vous attendez. Il semble que de nombreux problèmes que les gens rencontrent sont en raison de la viewDidAppear: ou d'autres méthodes ne sont pas appelés sur la ViewControllers poussé dans la NavigationController.
De toute façon, laissez-moi savoir si plus de détail aide.
Il n'y a qu'un IBOutlet dans le @déclaration de propriété, car c'est là où il est ramassé par interface builder. C'est un vide macro. Si vous obtenez une vue vide sur le deuxième panneau, c'est parce que le chargement de la manette de Navigation dans le viewDidLoad ne fonctionne pas. En tout cas, si chrissr la solution est de travailler pour vous, il suffit de regarder pour les viewWill* et viewDid* méthodes obtiennent pas propagées à votre sous-vues et si oui, de mettre en œuvre le délégué. (Le manque délégué protocole a été un mispaste, mais les méthodes appelait de toute façon.)
OriginalL'auteur corprew