Class Edit View Controller - PullRequest
       2

Class Edit View Controller

0 голосов
/ 13 декабря 2011

Можно ли что-то изменить в классе View Controller, не делая [ViewController alloc]init]?

У меня есть отдельный класс, рассчитывающий несколько вещей, и мне нужно изменить scrollView.contentInset на моем ViewControllerа также некоторые другие вещи.

Отредактируйте для лучшего объяснения: My ViewController содержит представление прокрутки с текстовым полем внизу.Когда пользователь нажимает на это текстовое поле, мне нужно изменить свойство contentInset на scrollView.Я хочу управлять всем этим, используя отдельный класс (вместо того, чтобы делать это во всех моих контроллерах вида), поэтому мне нужно иметь возможность вызывать scrollView.contentInset на ViewController, который в данный момент находится в поле зрения.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Я думаю о нескольких способах справиться с этим:

A.Используя метод делегата.B. NSNotificationCenter.

Дайте мне знать, если вам нужно углубиться в подробности.

Добавлен код по запросу:

Чтобы использовать метод NSNotificationCenter:

В ViewController с scrollView добавьте оператор наблюдателя (возможно, в вашем методе viewDidLoad) и создайте метод для изменения любого свойства scrollview, которое вы хотите изменить:

-(void)viewDidLoad
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethodToChangePropertyOfScrollview) name:@"ChangeScrollView" object:nil];
}

-(void)myMethodToChangePropertyOfScrollview
{
    //scrollView.contentInset = etc...
}

Из любого класса, который вы хотите сделатьcontentInset этого scrollView изменен, просто отправьте уведомление, как это:

[[NSNotificationCenter defaultCenter] postNotificationName:@"ChangeScrollView" object:nil];

Чтобы использовать метод делегата, вы можете использовать аналогичный пример из одного моего предыдущего ответа на другой SO post ,Но в вашем случае я не уверен на 100%, каковы отношения между этими двумя классами.

0 голосов
/ 13 декабря 2011

Если Mystery Object X нужна ссылка на представление прокрутки, чтобы он мог отправить ему сообщение, вам нужно явно указать эту ссылку в .h. В файле .h Mystery Object X объявите @property для scrollview. При создании MOX установите свойство scrollview. Теперь у MOX есть ссылка, в которой он нуждается.

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