Как передать объект между представлениями с помощью раскадровки Created Tab Bar Controller

У меня есть 2 представления, управляемые контроллером представления панели вкладок, созданным шаблоном, который Xcode 4 выдает с помощью раскадровки.

Мое первое представление на первой вкладке — это страница ввода данных, мое второе представление на второй вкладке отображает эти данные в виде графика. У меня есть объект, в котором первое представление хранит эти данные. Как мне не только передать этот объект во второе представление, но и обеспечить его обновление, когда кто-то изменяет одно из полей UIText в первом представлении?

Большое спасибо


person Daniel Granger    schedule 26.11.2011    source источник


Ответы (1)


Поместите объект данных в свойство вашего делегата приложения или в глобальную переменную. В контроллере представления вашей страницы ввода данных добавьте метод IBAction для каждого текстового поля. В методе действия обновите соответствующее поле объекта данных. В раскадровке подключите событие «Editing Did End» или «Value Changed» каждого текстового поля к соответствующему методу IBAction.

person rob mayoff    schedule 27.11.2011
comment
есть ли другой способ сделать это? Кажется грязным загрязнять AppDelegate таким образом. - person nont; 15.02.2012
comment
Вы можете создать подкласс UITabBarController и поместить туда свойство. Вы можете опубликовать NSNotification. Вы можете дать указатели контроллеров представления друг на друга при их создании. - person rob mayoff; 15.02.2012