mapView setRegion не вызывается из функции - PullRequest
0 голосов
/ 13 июня 2011

Мой заголовочный файл:

@interface MapViewController : UIViewController <MKMapViewDelegate, NSFetchedResultsControllerDelegate>
{
    MKMapView *mapView;

    NSFetchedResultsController *fetchedResultsController;
    NSManagedObjectContext *managedObjectContext;
}

@property (nonatomic, retain) MKMapView *mapView;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;

Я также синтезирую в моем файле .m.

В моей функции viewDidLoad у меня есть это (представление исчезает через анимацию вродительский контроллер):

- (void)viewDidLoad
{
    [super viewDidLoad];

    mapView = [[MKMapView alloc] initWithFrame:self.view.frame];
    mapView.mapType = MKMapTypeSatellite;
    mapView.delegate = self;
    self.view = mapView;
    [self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
    self.view.alpha = 0.0;


    MKCoordinateRegion region;
    MKCoordinateSpan span;
    region.center.latitude = 42.764705;
    region.center.longitude = -94.047375;        
    span.latitudeDelta=.02;
    span.longitudeDelta=.02;
    region.span = span;
    [mapView setRegion:region animated:YES];
    NSLog(@"Change this1");
}

Это прекрасно работает.

У меня есть другая функция:

- (void)setInitialMapView
{

    MKCoordinateRegion region;
    MKCoordinateSpan span;    
    region.center.latitude = 32.764705;
    region.center.longitude = -84.047375;        
    span.latitudeDelta=50.0;
    span.longitudeDelta=50.0;
    region.span = span;
    [mapView setRegion:region animated:YES];
    NSLog(@"Change this 2");
}

Я вызываю эту вторую функцию, когда анимация завершена.

Эта вторая функция НЕ меняет регион карты, но печатает в журнал.Итак, функция вызывается.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 14 июня 2011

Не уверен, является ли это источником ваших проблем, но определенно кажется, что это может быть, или может способствовать ...

Эта строка в вашем viewDidLoad не годится:

self.view = mapView;

Я бы предложил добавить представление карты в качестве подпредставления self.view с использованием addSubview ( docs )

Я понятия не имею, каковы последствия того, что вы сделалибыло бы ... но я чувствую, что они не будут хорошими.

Если вам НУЖНО сделать свое корневое представление MKMapView, я считаю, что это должно быть сделано в методе loadView , как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...