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