После просмотра вашего исходного кода ссылка, которую я разместил, не имеет смысла.Я думал, что вы говорите о готовой клавише на клавиатуре.Но теперь я вижу, что вы говорили об экземпляре UIButton
на панели навигации, верно?
Ваш addButton:isLast:
метод выглядит великолепно, но я бы немного его изменил, чтобы он придерживался Apple HIG :
- (void)addButton:(id)delegate isLast:(BOOL)last
{
UIBarButtonItem *anotherButton;
anotherButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:delegate
action:@selector(finishQuestionnaire:)];
self.navigationItem.rightBarButtonItem = anotherButton;
[anotherButton release];
}
Это почти то же самое, за исключением того, что этот создает кнопку с соответствующим стилем.
Во всяком случае, я не вижу, каккнопка добавляется, поскольку addButton:isLast:
не вызывается в viewDidLoad:
.Добавьте следующую строку в ваш viewDidLoad:
.
[self addButton:self isLast:NO];
last
избыточен в вашем addButton:isLast:
, так как он даже не используется, поэтому я просто передаю (NO
).
Вы почти закончили, но если вы нажмете эту кнопку, ваше приложение зависнет, поскольку finishQuestionnaire:
не реализовано в self
(CommentQuestionViewController
).А поскольку вы хотите отменить клавиатуру, когда пользователь нажимает кнопку «Готово», именно здесь мы также оставляем текстовое представление в качестве первого респондента.Просто добавьте следующий метод:
- (void)finishQuestionnaire:(id)sender
{
[inputAnswer resignFirstResponder];
}