Проблема ViewDeck с экземплярами контроллеров представления
Таким образом, в моем центре viewcontroller моего приложения у меня есть mapview. Я нажимаю кнопку, и она переключает мой левый видовой контроллер и отображает мой левый видовой контроллер. Когда у меня открыт левый view controller, я нажимаю кнопку, и он закрывает левый viewcontroller и вызывает метод внутри контроллера центрального вида. Он на самом деле вызывает метод, но я думаю, что он находится на другом экземпляре контроллера центрального вида, потому что он показывает NSLog, но на самом деле он не обновляет информацию на контроллере центрального вида.
В общем, моя проблема в том, что я "думаю", что это создает несколько экземпляров центрального контроллера. Как я могу получить доступ к первому экземпляру, чтобы обновить данные на нем?
РЕДАКТИРОВАТЬ: Хорошо, вот код.
FirstViewController *controller = (FirstViewController*)[self presentedViewController];
[controller doSnap];
Я пробовал несколько вариантов этого. Внутри метода doSnap у меня есть NSLog, и я делаю некоторые вещи в mapView. Материал заканчивается тем, что регистрируется, но на самом деле он не отображается на карте, и я думаю, что причина этого в том, что это другой экземпляр контроллера представления.
1 ответ
При использовании модальных сегментов вы можете просто использовать presentingViewController
свойство для доступа к viewController, из которого вы пришли.
YourOriginalViewController *controller = (YourOriginalViewController*)[self presentingViewController];
controller.yourPropertyToSet = whateverValue;