2013-04-18 7 views
29

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

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

показать мне код действия или код уведомления на кнопку? – Balu

+0

Вы получаете self.navigationControlle как не нуль в своем классе? Проверь это. –

+0

[[NSNotificationCenter defaultCenter] postNotificationName: @ "goBack" object: nil]; – user1688346

ответ

83

Вы должны использовать:

[self.navigationController popToRootViewControllerAnimated:YES]; 

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

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

[self.navigationController popViewControllerAnimated:YES]; 
+0

этот код для меня не работает –

+0

Вы установили UINavigationController в качестве вашего rootViewController? Если нет, то это не сработает. –

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

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

#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]; 
} 
5

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

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

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

17

При использовании ниже линий мы можем перейти в родительский контроллер

[self.navigationController popViewControllerAnimated:YES]; 

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

[self.navigationController popToRootViewControllerAnimated:YES]; 

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

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

Swift решения для легкого копирования вставки:

navigationController?.popViewControllerAnimated(true) 
0

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

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

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

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

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

1

С swift3,

@IBAction func back(_ sender: UIButton) { 
    self.dismiss(animated: true, completion: nil)  
} 
Смежные вопросы