Доступ к переменным в одном экземпляре из другого класса в Objective-C - PullRequest
1 голос
/ 04 марта 2012

У меня проблема в том, что у меня есть несколько ViewController с, и я хочу получить доступ к переменной из одного ViewController в другом ViewController.Возможно, это можно решить очень просто (но я не могу понять это), но если у меня есть, скажем, UITextField с именем myTextField в ViewController1, как я могу получить доступ к myTextField.text из ViewController2?

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

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 04 марта 2012

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

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

0 голосов
/ 04 марта 2012

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

Контроллер первого вида

+ (NSString*) returnSomestring{
    return myVariable;
    //myVariable can be replaced with textView.text or whatever you need it to be.
}

Контроллер второго вида

#import "FirstViewController.h"

- (void) doSomething{
    NSString* var = [FirstViewController returnSomestring];
    //Code
}

Проблема решена!

0 голосов
/ 04 марта 2012

простой способ получить доступ к текстовому полю во всех контроллерах представления.

  • Создать новый класс (подкласс NSObject)
  • Сделать его одиночным ... всего один экземпляр за время жизнипрограммы.
  • Сохраните текст в классе синглтона.
  • Извлеките синглтон в другом контроллере представления и загрузите текст.

Google singleton в объективе-c, чтобы узнать больше об этом.

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