2010-09-02 6 views
0

В моем приложении я открываю окно листа для ввода пользователем. Поскольку окно сложное и имеет несколько текстовых полей и несколько кнопок, я создал для него отдельный контроллер (InputWindowController).Возвращаемые значения из листа?

Когда лист закрыт, я хочу получить некоторые значения из InputWindowController, но я не знаю, как это сделать. Во всех образцах я обнаружил, что элементы управления на листе подключены к Outlets в главном контроллере, но это не то, что я хочу. Если мне это нравится, мне не нужен отдельный контроллер.

Также я не совсем уверен, для чего предназначен ContextInfo. Вы можете установить его прямо перед тем, как лист откроется, и вы сможете получить его, когда он закрыт. Если бы я мог изменить contextInfo в листе, пока он открыт, это действительно очень помогло бы.

+0

По моему опыту, 'contextInfo' совершенно бесполезен. Удержание это работа вашего контроллера листа. –

ответ

2

Когда лист закрыт, я хочу получить некоторые значения из InputWindowController, но я не знаю, как это сделать.

Дайте InputWindowController свойство для делегата и протокол, определяющий метод, который должен реализовать этот делегат. Пусть этот метод будет способом, с помощью которого InputWindowController связывает конец листа с объектом, который хотел запустить лист.

Я предлагаю сделать model object, который содержит любые значения, отображаемые и редактируемые на листе. Дайте InputWindowController свойство, с помощью которого можно удерживать один такой объект модели. Затем, когда объект, который хочет запустить лист, получает уведомление InputWindowController о завершении работы листа, объект, который хочет запустить лист, запрашивает InputWindowController для объекта модели.

В качестве альтернативы, объект, который хочет запустить лист, может установитьна объект модели перед вызовом InputWindowController. Таким образом, он получит (и сможет сохранять и отменять) те изменения свойств объекта модели, какие они происходят; то в конце листа больше нечего делать.

+0

Я сделал объект модели и делегата, и он отлично работает. благодаря – TalkingCode

Смежные вопросы