Как я могу получить доступ к необходимому контроллеру представления, когда я нажимаю обратно на панели навигации в iPhone - PullRequest
1 голос
/ 17 февраля 2012

В моем приложении у меня есть 6 различных контроллеров представления.1. Домашняя страница 2. Представление таблицы 3. Сведения об элементах представления таблицы, это также представление таблицы с 4 строками 4. 4,5,6 Представления редактирования / изменения сведений (каждая строка в таблице сведений может быть изменена и перезагружена)

При редактировании данных с подробным представлением в 4,5,6 представлениях навигация переходит на 2-е представление подробностей.

всякий раз, когда я нажимаю на обратную навигацию в деталях, она появляется на предыдущей странице.вид, который был изменен недавно.Но мне нужно выдвинуть (толкнул в левую / заднюю сторону, но не толкнул вправо) в tableview1, поэтому я создал действие левой кнопки навигации для этой кнопки.

UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backclick:)] autorelease];
    self.navigationItem.leftBarButtonItem = backButton;

В acitio нажмите я использовал три различныхсближения

1.popToRootViewcontroller : it takes back to the home page. so ,didn't need it (X)
2.[self.navigationController pushViewController:abc animated:YES]; it pushes right/front (X)
3.present model view controller

все работают и переходят к виду таблицы, но не в правильном направлении, то есть не выдвигаются назад, просто толкаются вперед.Итак, я использовал popto viewcontoller.

4.popViewController (это правильный процесс, я думаю), но он дает сбой и отображает сообщение об ошибке soesnot exixst

-(IBAction)backclick:(id)sender
{
    ChronologyViewController *temp = [[ChronologyViewController alloc]initWithNibName:@"ChronologyViewController" bundle:nil];
        [self.navigationController popToViewController:temp animated:YES];
}

1 Ответ

9 голосов
/ 17 февраля 2012
for (UIViewController *vc in [self.navigationController viewControllers]) {
    if ([vc isMemberOfClass:[yourViewController class]]) {
        NSLog(@"Inside if");
        [self.navigationController popToViewController:vc animated:YES];
        return;
    }
}
...