2

J'essaie de créer une vue modale qui apparaît lorsque l'utilisateur appuie sur un bouton. La vue modale a une barre de navigation avec une vue cartographique comme vue principale. J'ai des problèmes pour configurer ceci dans Interface Builder. Lorsque je définis la vue de la vue du propriétaire du fichier sur la vue à l'intérieur du contrôleur de navigation, la seule chose qui s'affiche est la vue de la carte, avec un espace gris en haut et en bas. La barre de navigation n'apparaît jamais. Voici une copie d'écran de son apparence, avec une image de ma fenêtre IB.Configuration d'un contrôleur de navigation avec une vue de carte dans Interface Builder

Comment puis-je faire apparaître la barre de navigation correctement? Merci

alt text http://img.skitch.com/20100126-d5u4yuufpe77xdkuw2k1h9uahf.jpg

http://img.skitch.com/20100126-xrw6qd5jajytkq5u7x3kdk168s.jpg http://img.skitch.com/20100126-xrw6qd5jajytkq5u7x3kdk168s.jpg

Juste au cas où, voici la déclaration MapViewController:

#import <Foundation/Foundation.h> 
#import <MapKit/MapKit.h> 

@interface MapViewController : UIViewController 
{} 
@end 

Et le code pour pousser le contrôleur de vue modal:

MapViewController *mapVC = [[MapViewController alloc] init]; 
self.mapViewController = mapVC; 
[mapVC release]; 
[self presentModalViewController:mapViewController animated:YES]; 

Répondre

3


Vous allez dans le mauvais sens dans votre fichier NIB.

Ajoutez le MKMapView à la vue du UIViewController. Vous pouvez ajouter une barre de navigation ici à la place d'un contrôleur si vous ne souhaitez pas que cette vue aille ailleurs.

Cependant, avoir le contrôleur de navigation est très pratique. Donc, assurez-vous qu'il n'y a pas de contrôleur de navigation dans le fichier NIB pour votre classe MapViewController puis modifiez votre code pour ressembler à ceci:


MapViewController *mapVC = [[MapViewController alloc] init]; 
self.mapViewController = mapVC; 
[mapVC release]; 

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:mapViewController]; 
[self presentModalViewController:navController animated:YES]; 
[navController release]; 

Ensuite, vous pouvez accéder à ce contrôleur à partir de votre MapViewController fichier .m en utilisant:

self.navigationController 
+0

Merci pour l'aide, cela a fonctionné parfaitement. –

Questions connexes