UIBarButtonItem - Как сделать всплывающую кнопку «готово»? - PullRequest
0 голосов
/ 01 марта 2012

Я получил навигационный контроллер с кнопкой «Готово». Когда пользователь заканчивает работу с формой, он нажимает «Готово», и я хочу, чтобы это представление выскользнуло из стека и вернулось в главное меню.

Вот код, который я получил до сих пор:

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                                                                  style:UIBarButtonItemStylePlain 
                                                                 target:self 
                                                                 action:[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]];          
self.navigationItem.rightBarButtonItem = anotherButton;

Пожалуйста, помогите! Спасибо

Ответы [ 3 ]

3 голосов
/ 01 марта 2012

Как вы можете попробовать это:

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                                                               style:UIBarButtonItemStylePlain 
                                                                 target:self 
                                                                 action:@selector(onClickOfDone);          
self.navigationItem.rightBarButtonItem = anotherButton;

Теперь напишите логику popViewController в методе с именем onClickOfDone

- (void)onClickOfDone {
[self.navigationController popViewControllerAnimated:YES];
}

Если у вас только один уровеньтогда приведенный выше код поможет.Если вы хотите указать контроллер, к которому он должен подключиться, вы можете использовать

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]

РЕДАКТИРОВАТЬ:

Вы также можете использовать SystemItem для Done:

UIBarButtonItem *aDoneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
                                                                             target:self action:@selector(onClickOfDone)];
self.navigationItem.rightBarButtonItem = aDoneButton;
[aDoneButton release];
1 голос
/ 01 марта 2012

1) Определить новый метод класса, который соответствует self. Например,

- (void)closeView
{
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];
}

2) Установите соответствующий селектор при создании кнопки:

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                                                              style:UIBarButtonItemStylePlain 
                                                             target:self 
                                                             action:@selector(closeView)];          
self.navigationItem.rightBarButtonItem = anotherButton;
[anotherButton release]; // and don't forget to clear memory
0 голосов
/ 01 марта 2012

Ваш код правильный, просто сделайте одну функцию, и внутри этой функции напишите всплывающий код, затем вызовите эту функцию, используя @selector в действии.

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