Настройка контроллера навигации с представлением карты в Интерфейсном Разработчике - PullRequest
2 голосов
/ 26 января 2010

Я пытаюсь создать модальное представление, которое появляется, когда пользователь нажимает кнопку. Модальный вид имеет панель навигации с видом карты в качестве основного вида. У меня проблемы с настройкой в ​​Интерфейсном Разработчике. Когда я устанавливаю выходной вид для представления владельца моего файла на вид внутри контроллера навигации, единственное, что отображается, это вид карты с серым пространством сверху и снизу. Панель навигации никогда не появляется. Вот скриншот того, как это выглядит, с изображением моего окна IB.

Как мне заставить панель навигации правильно отображаться? Спасибо

альтернативный текст http://img.skitch.com/20100126-d5u4yuufpe77xdkuw2k1h9uahf.jpg

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

На всякий случай вот объявление MapViewController:

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

@interface MapViewController : UIViewController
{}
@end

И код для нажатия модального контроллера вида:

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

1 Ответ

3 голосов
/ 26 января 2010


Вы делаете это неправильно в файле NIB.

Добавьте MKMapView к представлению UIViewController. Вы можете добавить навигационную панель вместо контроллера, если вы не хотите, чтобы этот вид отображался где-либо еще.

Однако наличие навигационного контроллера очень удобно. Поэтому убедитесь, что в файле NIB для вашего класса MapViewController нет контроллера навигации, а затем отредактируйте код, чтобы он выглядел следующим образом:

<Ч />
MapViewController *mapVC = [[MapViewController alloc] init];
self.mapViewController = mapVC;
[mapVC release];

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

Затем вы можете получить доступ к этому контроллеру из вашего файла MapViewController.m, используя:

self.navigationController
...