У меня есть UITableView (в стеке контроллера навигации), который показывает детали для пользовательского объекта модели. Объект имеет свойство массива для хранения дочерних объектов, каждый из которых имеет свойство широты и долготы.
Поскольку я «лениво загружаю» все из API веб-службы, массив дочерних объектов не заполняется до тех пор, пока пользователь не коснется ячейки в подробном представлении в первый раз, чтобы увидеть объекты на карте. На этом этапе я сначала создаю и отправляю промежуточный «загрузочный вид», который вызывает вызов API, заполняет массив, а затем создает и отправляет вид карты.
Проблема заключается в том, что когда представление на основе карты передается на навигационный контроллер, MKMapView не показывает. Заголовок панели навигации и кнопка «Назад» меняются правильно, но я все еще вижу предыдущее представление загрузки между панелью вкладок приложений и панелью навигации! Если массив был ранее заполнен, я помещаю представление на основе карты сразу после подробного представления, и оно работает нормально. Я также использую этот контроллер представления карты в своем проекте без каких-либо проблем.
Я не могу понять, что здесь происходит. Если я изменю контроллер представления «загрузка», чтобы отображать представление карты в модальном режиме, он также будет работать нормально. Ниб контроллеров представления карты использовался двумя пользовательскими классами контроллеров, и я сначала подумал, что это проблема, но теперь владелец файлов в IB настроен на правильный контроллер.
Вот код из представления загрузки, который подталкивает представление карты:
ObjectMapViewController *objectMapVC = [[ObjectMapViewController alloc]
initWithNibName:@"ObjectLocationView" bundle:nil];
objectMapVC.objectsToMap = self.object.childObjects;
[self.navigationController pushViewController:objectMapVC animated:YES];
[objectMapVC release];
Любая помощь очень ценится!