Перейти к предыдущему контроллеру представления

У меня есть UIView->UICollectionView->UICollectionViewCell. Я пытаюсь перейти программно, но ни одна из них не работает. Код вызвал. Я использую StoryBoard.

- (void) goBack:(NSNotification *) notification {
      // [self.navigationController popViewControllerAnimated:YES];
     //  [self dismissViewControllerAnimated:YES completion:nil];
      [self.navigationController popToRootViewControllerAnimated:YES];
}

Ответ 1

Вам нужно использовать:

[self.navigationController popToRootViewControllerAnimated:YES];

Это вернет вас к контроллеру корневого представления.

Если вы хотите перейти к предыдущему контроллеру представления, вы должны реализовать:

[self.navigationController popViewControllerAnimated:YES];

Ответ 2

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

[self.navigationController popViewControllerAnimated:YES]; 

Используя нижнюю строку, мы можем перейти к главному/корневому контроллеру представления

[self.navigationController popToRootViewControllerAnimated:YES]; 

Используя нижнюю строку, мы можем перейти к любому контроллеру вида

[self.navigationController popToViewController:viewControllerObject animated:YES]; 

Ответ 3

Как насчет...

 [self.navigationController dismissViewControllerAnimated:YES completion:NULL];

Предполагая, что вы в настоящее время находитесь в контроллере на основе навигации, и вы хотели вернуться к предыдущему контроллеру, прежде чем попасть в контроллер на основе навигации.

Ответ 4

Быстрые решения для удобного копирования:

navigationController?.popViewControllerAnimated(true)

Ответ 5

Попробуйте...

#import "bookdescriViewController.h" // import here your class name 

- (IBAction)backButton:(id)sender 
{
  bookdescriViewController *previosVC = [[bookdescriViewController alloc]init];
  [self.navigationController popViewControllerAnimated:YES]; // go to previous view controller
  [self.navigationController popToRootViewControllerAnimated:YES]; // go to root view controller
  [self.navigationController popToViewController:previosVC animated:YES]; // go to any view controller
  [previosVC release];
}

Ответ 6

- (void) goBack:(NSNotification *) notification 
{ 
   if(!self.YOrView.isHidden)
      self.YOrView.hidden = YES;
}

Ответ 7

Вернитесь к контроллеру родительского представления и контроллеру текущего уровня dealloc ex:

- (void)applicationDidEnterBackground:(NSNotification *)notification
{
    NSInteger numberOfViewControllers = self.navigationController.viewControllers.count;

    UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:numberOfViewControllers - 2];

    [self.navigationController popToViewController:vc animated:NO];
}

или другой контроллер просмотра

Ответ 8

С swift3,

@IBAction func back(_ sender: UIButton) {
    self.dismiss(animated: true, completion: nil)     
}