2016-01-11 3 views
0

hi У меня есть контроллер представления с контейнером и в контейнере дочерний вид с представлением коллекции, когда пользователь забирает ячейку коллекции, которую он отправляет мне на контроллер представления подробно, но теперь то, что я хочу сделать, это добавить кнопку назад в моей детализации контроллера представления, который посылает меня к parentViewControllerКак создать кнопку возврата в контроллере представления, чтобы перейти к контроллеру родительского представления

enter image description here

+3

Это то, что 'UINavigationController' для. – rmaddy

ответ

3

Case 1: UNWIND SEGUE

Это будет работайте в соответствии с вашей ситуацией:

iOS Unwind Segue

Отмотать перетекает дать вам возможность «раскрутиться» навигационный стек и указать пункт назначения, чтобы вернуться.

Случай 2: PopToRootViewController

Если родительский вид также ваш контроллер представления Root, то вы можете легко получить обратно с помощью popToRootViewControllerAnimated:YES.

Создайте собственную кнопку возврата, добавьте ее в навигационную панель с помощью метода backButtonTouch.

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil) style:UIBarButtonItemStyleDone target:self action:@selector(backButtonTouch:)]; 

Добавить код выше на viewDidLoad.

-(void)backButtonTouch:(id)sender{ 
    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 
+1

Спасибо Unwind segue решил это для меня! – Mastertron

0
  1. Если вы хотите настроить кнопку назад, первый скрыть панель навигации

    [self.navigationController setNavigationBarHidden: YES];

  2. Теперь добавьте кнопку, и создать его touchUpInside событие, в этом случае поп-контроллер

    [self.navigationController popViewControllerAnimated: YES];

0

На кнопки действий Назад, добавьте следующую строку:

[self.navigationController popToRootViewControllerAnimated:YES]; 

Это переместит вас rootViewController.

0

Вот мой код, чтобы вернуться в родительский контроллер представления

- (IBAction)ActionbtnBack:(id)sender { 
     int flag = 0; 
     for (UIViewController *controller in [[self.navigationController.viewControllers reverseObjectEnumerator] allObjects]) { 
      NSLog(@"> %@",[controller class]); 
      if ([controller isKindOfClass:[YourParentviewcontroller class]]) { 
       flag=1; 
       [self.navigationController popToViewController:controller 
                 animated:YES]; 
       break; 
      } 
      else if ([controller isKindOfClass:[YourParentviewcontroller class]]) { 
       flag=1; 
       [self.navigationController popToViewController:controller 
                 animated:YES]; 
       break; 
      } 
     } 
     if (flag == 0) { 
      YourParentviewcontroller *MoreVc = [[YourParentviewcontroller alloc] initWithNibName:@"parentViewcontrollerIdentifier" bundle:nil]; 
      [self.navigationController pushViewController:MoreVc animated:YES]; 
     } 
    } 

enter image description here