0

J'implémente un UITabBar au milieu de ma pile de navigation sans UITabBarController. UITabBar est dans le DetailViewController qui délègue une partie de l'écran au contrôleur de vue associé à l'élément d'onglet sélectionné. À l'intérieur de l'un des contrôleurs de vue qui est affiché via la sélection de la barre d'onglets, il y a un UIButton qui doit afficher une vue de manière modale. J'ai essayé [self presentModalViewController:modalNavController animated:YES];, mais la nouvelle barre de navigation était cachée sous la barre de navigation du contrôleur parent, DetailViewController. Donc, ce que je pense que je dois faire est d'utiliser le contrôleur de navigation du parent pour présenter la vue de façon modale afin que la nouvelle barre de navigation soit en haut de la barre de navigation DetailViewController.Comment puis-je afficher un contrôleur de vue de manière modale, en utilisant le contrôleur de navigation du parent?

Je sais que c'est possible parce que j'ai une annonce dans le DetailViewController, et en tapant sur l'addition me donne le résultat souhaité, mais je n'ai pas été en mesure d'incorporer ce code. Je pourrais aussi probablement afficher l'UIButton à partir de DetailViewController plutôt que de la sous-vue, mais j'ai besoin d'utiliser ce modèle plusieurs fois, donc je préfère ne pas avoir à travailler avec un hack non orthodoxe comme ça.

MERCI!

EDIT

Je l'ai déjà essayé d'ajouter la nouvelle vue à un contrôleur de navigation, puis présenter le contrôleur de navigation comme ceci:

WriteReviewController *newReview = [[WriteReviewController alloc] initWithNibName:@"WriteReviewController" bundle:nil]; 
UINavigationController *modalNavController = [[UINavigationController alloc] initWithRootViewController:newReview]; 
// This is intended to be presented in another view controller class 
modalNavController.navigationBar.barStyle = UIBarStyleDefault; 
[self.parentViewController presentModalViewController:modalNavController animated:YES]; 
[modalNavController release]; 

Répondre

0

est auto subclassing UIViewController ou autre chose? J'ai réussi à voir une vue avec un contrôleur de navigation de cette façon, bien que je ne le fasse pas habituellement avec une plume. Voir si vous avez réussi à pousser la vue d'abord, puis essayez de présenter ModalView.

Je recommande également d'utiliser la méthode déléguée pour implémenter ceci. Bien que cela ne soit pas nécessaire pour ce que vous faites, vous constaterez que vous rencontrerez moins de problèmes plus tard et que vous êtes probablement considéré comme la «bonne» façon de faire les choses.

+0

self sous-classe UIViewController. J'ai décidé d'ajouter simplement le UIButton à la sous-vue du DetailViewController parce que je ne pouvais pas comprendre comment le faire autrement. Voulez-vous dire que je devrais essayer [pousser self.parentViewController ...] ?? Apparemment, parentViewController renvoie zéro. Pourriez-vous me diriger vers une ressource où je pourrais en apprendre un peu plus sur la «méthode des délégués» de la mise en œuvre? Je veux juste faire cela correctement parce que tous les hacks de BS essayés n'ont rien fait mais me causent des maux de tête. Merci! –

+0

vous devriez probablement utiliser self, pas self.something. Pour regarder la mise en œuvre de la méthode des délégués, jetez un coup d'œil à la leçon 11 du cours de développement de l'iPhone de stanford (6 mai 2009) disponible sur iTunesU. Comme je l'ai dit, vous n'en avez pas vraiment besoin mais c'est la façon "correcte" de le faire, cela vous donnera une meilleure compréhension du SDK avec des choses comme TableViews et ainsi de suite, et une fois que vous aurez compris les choses avec ça. – Rudiger

+0

oh et oui, je voulais dire essayer [self.parentViewController pousser pour voir si cela fonctionne. Je pense qu'il devrait être juste comme vous appelez la méthode prédéfinie de UIViewController – Rudiger