iPhone: Как я могу получить доступ к данным в классе контроллеров представления из другого класса контроллеров? - PullRequest
1 голос
/ 27 февраля 2010

В моем приложении есть одна форма ввода, в которой есть шесть текстовых полей

  1. Имя: UITextField
  2. Дата рождения: UITExtField
  3. Возраст: UITextField
  4. Адрес: UITextField
  5. Номер телефона: UITextField
  6. Изображение: UIIMageView

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

Пожалуйста, помогите мне, мне действительно нужна помощь для этого ..

Заранее благодарен

Ответы [ 2 ]

2 голосов
/ 27 февраля 2010

Этого можно добиться, реализовав методы getter и setters в классе делегатов.

В файле делегата .h

Включить делегата UIApplication

 @interface DevAppDelegate : NSObject <UIApplicationDelegate>

 NSString * currentTitle;

- (void) setCurrentTitle:(NSString *) currentTitle;
- (NSString *) getCurrentTitle; 

В классе реализации делегата .m

-(void) setCurrentLink:(NSString *) storydata{
currentLink = storydata;

}

-(NSString *) getCurrentLink{
if ( currentLink == nil ) {
currentLink = @"Display StoryLink";
}
return currentLink;
}

Таким образом, переменная, которую вы оцениваете, устанавливается в строке currentlink с помощью метода setters и класса, где вы хотите строку, просто используйте метод getter.

1 голос
/ 27 февраля 2010

Что вам действительно нужно, так это объект модели данных.

Модель данных - это объект выделенного класса, который хранит и логически манипулирует данными приложений. Это должен быть совершенно отдельный класс от представлений или контроллеров представления. Он должен быть общедоступным в приложении, предпочтительно как синглтон.

(Решение Warrior - это легковесное решение, которое превращает делегат приложения в объект модели данных. Он будет работать для небольших, быстрых и грязных приложений. Он сломается по мере усложнения данных.)

В вашем случае контроллер A записывает собранные данные в модель данных, а затем закрывает представление. Контроллер B после активации проверит модель данных и зачитает необходимую информацию.

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

Подробнее см .: Шаблон для прав собственности и ссылок между несколькими контроллерами и полуобщими объектами?

и

Простая настройка / проектирование MVC?

...