代码之家  ›  专栏  ›  技术社区  ›  nevan king

在Interface Builder中使用地图视图设置导航控制器

  •  2
  • nevan king  · 技术社区  · 16 年前

    我试图创建一个模式视图,当用户按下按钮时弹出。模态视图有一个导航栏,主视图为地图视图。我在界面生成器中设置此项时遇到问题。当我将文件所有者视图的视图出口设置为导航控制器内的视图时,唯一显示的是地图视图,顶部和底部都有灰色空间。导航栏从未出现。这里有一个屏幕商店,上面有我的ib窗口的图片。

    如何才能让导航栏正确显示?谢谢

    alt text 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 回复  |  直到 16 年前
        1
  •  3
  •   imnk    16 年前


    在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