У меня есть UITableView в UINavigationController, который содержит rightBarButtonItem, который должен скрывать UITableView и вместо этого показывать MKMapView. Кажется, что кнопка работает отлично: она скрывает UITableView и показывает MKMapView. Однако этот MKMapView пуст. Полностью белый. Я пробовал использовать UILabel (только для целей тестирования), но он тоже не появляется, поэтому проблема должна возникнуть, когда я добавляю MKMapView (и UILabel) в иерархию представлений. Некоторый соответствующий код:
- (void)viewDidLoad {
[super viewDidLoad];
self.mapView = [[MKMapView alloc] init];
mapView.hidden = YES;
[self.view addSubview:self.mapView];
// Some other stuff, table set up, etc.
}
Это viewDidLoad класса, наследуемого от UITableViewController. Теперь я использую следующий метод, который вызывается при нажатии на rightBarButtonItem UINavigationController:
- (void) toggleView {
if (self.mapView.isHidden) {
self.mapView.hidden = NO;
self.tableView.hidden = YES;
self.viewButton.title = @"List";
}
else {
self.mapView.hidden = YES;
self.tableView.hidden = NO;
self.viewButton.title = @"Map";
}
}
Я уверен, что функция вызывается, проверял с помощью NSLog. Кроме того, UITableView правильно исчезает, и я предполагаю, что MKMapView (или любой другой объект UIView в этом отношении) появляется, но является пустым / полностью белым. Кто-нибудь понимает, почему я не вижу карты при попытке переключиться в режим просмотра карты?