Как получить доступ к представлению на один уровень выше моего текущего представления в приложении iOS на основе навигации? - PullRequest
0 голосов
/ 06 августа 2010

Я углубляюсь в разработку iOS и знакомлюсь с контроллерами представления навигации. Я пытаюсь создать простое приложение с табличным представлением, которое позволяет мне добавлять объекты к нему. До сих пор у меня есть табличное представление с кнопкой «+» на панели навигации, которое позволяет мне загрузить мой CreateObjectView и отобразить его модально, чтобы пользователь мог определить новый объект, но когда они нажимают кнопку сохранения, я не Не знаю, как отправить данные этого объекта обратно в родительское представление, которое создало CreateObjectView, который содержит данные объекта.

Когда я создаю дочернее представление (CreateObjectView), я могу передать в него указатель на текущее представление, прежде чем помещать его в стек навигации, но это выглядит грязным и круглым.

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

Похоже, что этот вопрос будет общей проблемой для любого приложения на основе табличного представления или навигации. Как мне, вероятно, получить доступ к представлению на один уровень выше моего текущего представления в приложении для iOS на основе навигации?

Заранее большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 06 августа 2010

Сначала это кажется круглым, но это правильный путь. Перед тем как UINavigationController отправит новый контроллер представления, вы должны установить делегата для текущего контроллера представления - предполагая, что это объект, с которым вы хотите связаться. Конечно, вы могли бы установить его где-то еще, например, в центральный обработчик Core Data. Затем, когда вам нужно связаться, вызовите делегата с методом, который вы определили. Я сделал несколько таких приложений навигации, увидев пример кулинарной книги Apple, и она действительно хорошо работает.

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