J'ai un contrôleur de vue modale dont la vue provient d'un fichier XIB. Je souhaite que son apparence et la même sensation que le reste de mon application basée sur la navigation, mais ce n'est pas une vue qui est poussée à la pile de navigation, elle est présentée de manière modale. J'ai fait glisser un UINavigationBar et en ai fait un point de vente, mais il n'a pas de propriété title à définir. J'ai deux champs qui peuvent faire apparaître cette vue modale et je veux que le titre soit défini différemment en fonction de celui qui crée la vue modale.
Réponses
Trop de publicités?UINavigationBar
s'gérer une pile de UINavigationItem
s comme un UINavigationController
manager une pile de UIViewController
s. Pour définir ce qui est visible directement, vous devez utiliser pushNavigationItem:animated:
ou setItems:animated:
à l'aide de la navigationItem de la vue contrôleur de la barre de réfléchir.
par exemple:
self.navigationItem.title = @"A custom title";
[self.navigationBar pushNavigationItem:self.navigationItem animated:NO];
Le code ci-dessus où vous avez une propriété navigationBar
références le stand-alone de la barre de navigation.
Si vous ne voulez pas gérer vous-même, vous pouvez faire en tant que mplappert suggéré et nest votre vue-contrôleur (sans stand-alone UINavigationBar
) en UINavigationController
et de présenter la manette de navigation modal au lieu de votre vue-contrôleur.
(Utilisation de XCode 4.5.2) Nous avons trouvé une méthode qui fonctionne directement dans Interface Builder - sans définition de code.
Avec l'objet ViewController sélectionné dans (IB), sous l'inspecteur d'identité se trouve une section intitulée " Attributs d'exécution définis par l'utilisateur ". J'ai ajouté le keyPath "titre" de type String et le définit sur la valeur que je voulais.
Testé et cela fonctionne lorsqu'il est placé sur une pile de contrôleurs de navigation et ouvert de manière modale (avec un contrôleur de navigation modal bien sûr).
fichier viewcontroller.h dans create iboutlet de l'élément de navigation
@property (weak, nonatomic) IBOutlet UINavigationItem *navigationBarTitle;
- nommé "navigationBarTitle"
dans le fichier viewcontroller.m dans ajouter le code dans super viewDidLoad
self.navigationBarTitle.title = @"Favorites";
connectez l'article Storybord dans l'élément de la barre de navigation à navigationBarTitle.