2014-10-23 4 views
0

Я пытаюсь решить свою проблему с помощью поиска в Библиотеке разработчиков, но, вероятно, я не знаю, для чего я должен искать.Установить textField.text из другого класса моего приложения

У меня есть HeadViewController.h, где я устанавливаю свойство своего текстового поля IBOutlet. В этом представлении у меня есть другой вид (containerView) с классом ContainerViewController.

Моя проблема заключается в том, что я не могу установить текст TextField в моем HeadViewController даже если я пытаюсь установить свойство моего класса HeadViewController в моем ContainerViewController.h

Вот что я пытаюсь:

ContainerViewController.h

@class HeadViewController; 

@property HeadViewController *hvc; 

ContainerViewController.m

#import "HeadViewController.h" 

// in my IBAction method 
self.hvc.textField.text = @"text from container view"; 

Я также пытаюсь использовать [textField setText: @ ""] и [textField inserText: @ ""], но с тем же результатом. Если кто-нибудь знает, где моя проблема, или для чего я должен искать в Библиотеке разработчиков, я по достоинству оценят это.

+0

is 'self.hvc.textField' не ноль в то время, когда вы пытаетесь установить текст? –

+0

Это поле пуст по умолчанию в то время, когда я хочу установить в нем текст – Mayo323

+0

Я получил это, но вы можете проверить в отладчике, является ли он нолем? –

ответ

1

Вам необходимо установить значение вашей собственности, hvc. hvc - это указатель, но просто объявляя, что он не указывает на что-либо, он просто говорит, на какой класс объекта он должен указывать. Поскольку ContainerViewController встроен в контейнер в представлении HeadViewController, это делает HeadViewController родителем. Таким образом, вы можете ссылаться на HeadViewController из ContainerViewController с помощью self.parentViewController.

// in my IBAction method 
self.hvc = (HeadViewController *)self.parentViewController; 
self.hvc.textField.text = @"text from container view"; 
+0

Спасибо за ваш ответ. Это работает сейчас :) Очень хорошо объяснили, где была проблема. Проголосуйте за свой ответ! Еще раз спасибо. – Mayo323

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