因为在多种情况下我想从导航堆栈中弹出一个视图控制器,所以我有一个方法可以做到这一点,并且可以在三个不同的地方调用它。
- (void)dismissSelfCon {
NSLog(@"dismiss");
[locationManager stopUpdatingHeading];
[locationManager stopUpdatingLocation];
locationManager.delegate = nil;
mapView.delegate = nil;
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[[Trail_TrackerAppDelegate appDelegate] navCon] popViewControllerAnimated:YES];
}
在一种情况下,如果mapView上有注释(我不确定这是否是定义特征,但我认为是),则将调用此方法(并且我确信它被调用是因为@“ dismiss ”打印到控制台),但是位置管理器不会停止发送位置更新! 另外,由于委托未设置为nil,因此应用程序崩溃,因为视图控制器从其为其委托的对象之一接收responsesToSelector:。
这怎么可能?