【问题标题】:MkMapView in Modal ViewController模态视图控制器中的 MkMapView
【发布时间】:2011-08-09 00:04:04
【问题描述】:

我有一个 MkMapView 实例,我在 viewDidLoad 中为模态视图控制器调用:

mapView = [[MKMapView alloc] init];
mapView.showsUserLocation = YES;
mapView.delegate = self;

我只是在创建它,以便可以针对它调用 ReverseGeocoder 并获取位置(地标)。它由视图保留,并且在第一次呈现视图时工作正常。我重用了由 UITableView 中的不同项目调用的视图,所有这些都以模态方式呈现。第一次调用后,后续调用都不起作用。我在挠头,想知道发布池是否有问题。

当视图调用 viewDidUnload 时,我将代理设置为 nil:

self.mapView.delegate = nil;
self.reverseGeocoder.delegate = nil;

有什么想法或我想念的东西吗?

【问题讨论】:

    标签: objective-c mapkit modalviewcontroller


    【解决方案1】:

    我宁愿考虑在你的init 方法中创建这个对象,并在dealloc 中释放它,而不是担心它在视图加载时是否存在。无论您是否在屏幕上显示它,您都可以在 init 方法中分配它,然后如果您愿意,只需将其添加到 viewDidLoad 中的视图中。

    【讨论】:

    • 这是一个很好的观点。我确实试了一下。我还发现有时 MKMapKit 会泄漏,所以我尝试在我的应用程序委托中分配它,然后将其复制进去。结果相同。我还有一些想法可以尝试:@property (nonatomic, assign) MKMapView *mapView;
    • 解决方案:从 iOS 4.3 开始,它强制要求在发布 MapView 之前取消它。我添加了 self.mapview = nil;在调用发布之前,它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    相关资源
    最近更新 更多