2013-08-19 3 views
0

У меня есть две подслои UIViewController, оба они соответствуют протоколу UITextFieldDelegate. IOW, у меня есть эти классы.Почему textFieldwithPlaceHolderText не определен для одного контроллера представления, который соответствует UITextFieldDelegate?

# MyVC1.h 
@interface MyVC1 : UIViewController <UITextFieldDelegate> 

# MyVC1.m 
@interface MyVC1() { 
    // Private variable, so not a property 
    UITextField *_myTextField; 
} 
@end 

@implementation MyVC1 

- (void)viewDidLoad 
{ 
    _myTextField = [self textFieldwithPlaceHolderText:@"*Text"]; 
} 
@end 

ЖЕ КОД для MyVC2 класса, за исключением, конечно, имя класса.

Однако, это странная часть, мой код компилируется для MyVC1, но НЕ для MyVC2. Для MyVC2, компилятор говорит: «Нет видимых @interface для„MyVC2“заявляет селектор„textFieldwithPlaceHolderText“. Что я отсутствующий для MyVC2? Я дважды и трижды проверили!

+3

Где вы создаете 'textFieldwithPlaceHolderText'? Вы уверены, что оба ваших класса имеют этот метод, потому что он не является методом 'UITextFieldDelegate'. – Jsdodgers

+0

ТОЛЬКО #import в файле .h файлов обоих контроллеров: #import , я импортирую разные * .h файлы в их соответствующие файлы * .m, но эти * .h файлы (импортированные в. m файлов), только сами #import . У NONE моих классов этот метод определен. Это даже странно. IOW, почему это вообще работает, то есть для MyVC1? –

+0

Вы уверены, что .h для MyVC1 расширяет UIViewController, а не какой-либо другой ViewController? И что у него нет метода, определенного где-то? – Jsdodgers

ответ

0

. Хорошо, поздно, и я сонный. MyVC1 определяет метод textFieldwithPlaceHolderText, но НЕ MyVC2. Я вырезал/прошёл раздел viewDidLoad, но забыл вырезать/вставить метод. Извините, что тратил свое время.

+0

Haha np. Но, эй, не стесняйтесь голосовать за мой ответ и оригинальное замечание Jsdodgers, а не время тратить таким образом;) –

0

Как Jsdodgers сказал, textFieldwithPlaceHolderText не . метод UITextFieldDelegate Проверьте #imports раздел на обоих контроллерах - возможно, VC1 импортирует категории для класса UIViewController, который добавляет, что метод его импорта категория будет выглядеть следующим образом: #import «UIViewController + _ .h»

+0

См. Мои комментарии выше. –

0

скопировать метод «textFieldwithPlaceHolderText» в myVc2.h в ИНТЕРФЕЙС и внедрить в myvc2.m если я отправить что-нибудь не так жаль что