2016-04-19 4 views
0

Так я реализую пользовательский навигационный пункт, на мой взгляд контроллера с помощью метода, как этотUITextField не может уйти в отставку его клавиатуру, когда внутри UINavigationItem

-(UINavigationItem*)navigationItem{ 
    item = [[SearchNavigationItem alloc] init]; 
    item.delegate = self; 
    return item; 
} 

SearchNavigationItem будет позиционировала себя, добавьте UITextField и так далее.

У field.delegate будет предмет в качестве делегата.

Таким образом, проблема заключается в том, что когда я пытаюсь захватить текст поля, он равен нулю. Но когда вызывается «текстовое поле», я могу получить доступ к полю через аргумент (textFieldDidChange: UITextField *), и он имеет текст.

Другой вопрос, как и название, состоял в том, что когда я сделал [field resignFirstResponder], ничего не произошло.

+0

Вы используете раскадровку для управления навигационным контроллером? или используя метод prepareforsegue? – Lion

+0

Эй, на самом деле я решил это уже и отправил ответ. Я не могу отметить это как таковое до 2 дней. Но, чтобы ответить, я изначально планировал использовать XIB-файл, поэтому я не мог просто установить класс navigationItem. Вот почему я должен был реализовать метод, чтобы вернуть его. И это вызвало проблему. –

ответ

0

Итак, у меня уже есть ответ, и я пишу этот вопрос, потому что лично я не мог найти никакой помощи при его исправлении.


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

Таким образом, решение стало просто, это:

-(UINavigationItem*)navigationItem{ 
    // Apparently it should be treated as a 'singleton' which I think it says 
    // kind of in the documentation. This comment is just to reinforce that 
    // it burned me to init it each time this method is called. Which is can 
    // be multiple times and also outside of the class itself (like when nav'ing) 
    if(item == nil){ 
     item = [[SearchNavigationItem alloc] init]; 
     item.delegate = self; 
    } 
    return item; 
} 

Надеется, что это помогает кто-то другое.

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