У меня есть 3 контроллера представления (VC) AB C. Сначала я представляю A. Затем я нажимаю B, а затем нажимаю C. После нажатия C я удаляю B из стека, чтобы пользователь мог вернуться к A, если он нажал Кнопка назад. Я использую этот код для нажатия C и удаления B:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Nazaj" style:UIBarButtonItemStylePlain target:nil action:nil];
//we push C
PorabaControllerR *anotherViewController = [[PorabaControllerR alloc] initWithNibName:@"PorabaViewR" bundle:nil];
//[anotherViewController setTitle:@"Pregled porabe"];
[anotherViewController.navigationItem setBackBarButtonItem:backButton];
[self.navigationController pushViewController:anotherViewController animated:YES];
[anotherViewController release];
//we remove B from the stack
NSMutableArray *allControllers = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
[allControllers removeObjectAtIndex:[allControllers count] - 2];
//[allControllers objectAtIndex:[allControllers count] - 2]
[self.navigationController setViewControllers:allControllers animated:NO];
[allControllers release];
Проблема в том, что уинав. Кнопка возврата элемента не отображается на C, пока я не перехожу над ней и не нажимаю на нее. (на B все в порядке).
Есть ли хороший способ, как отладить его или наблюдать за изменением названия кнопки во время выполнения?
Любая другая идея?
РЕДАКТИРОВАТЬ: я пытался использовать идею Виджая:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Nazaj" style:UIBarButtonItemStylePlain target:self action:@selector(leftBarButtonClick:)];
-(IBAction)leftBarButtonClick:(UIButton *) sender {
NSLog(@"clicked left");
//back to home screen
[self.navigationController popToRootViewControllerAnimated:YES];
}
но эта функция вообще не вызывается, и кнопка "Назад" по-прежнему скрыта, пока я не перехожу на нее и не нажимаю на нее.