我正在尝试创建一个模式视图,当用户按下按钮时会弹出该视图。模态视图有一个导航栏,地图视图作为主视图。我在Interface Builder中设置它时遇到了麻烦。当我将文件所有者视图的视图出口设置为导航控制器内的视图时,唯一显示的是地图视图,顶部和底部有灰色空间。导航栏永远不会出现。这是一个看起来如何的网上商店,带有我IB窗口的图像。
如何让导航栏正确显示?感谢
alt text http://img.skitch.com/20100126-d5u4yuufpe77xdkuw2k1h9uahf.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];
答案 0 :(得分:3)
您在NIB文件中以错误的方式进行此操作。
将MKMapView添加到UIViewController的视图中。如果您不希望此视图转到其他任何位置,则可以在此处添加导航栏而不是控制器。
然而,拥有导航控制器非常方便。因此,请确保您的MapViewController类的NIB文件中没有导航控制器,然后编辑您的代码,如下所示:
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