Возвращаясь при нажатии кнопки «Назад» - Начинающий - PullRequest
1 голос
/ 20 февраля 2012

У меня есть UIViewCOntroller, и мой код выглядит следующим образом.

TviewController *tviewController = [[TviewController alloc]init];
    [self.navigationController pushViewController:tviewController animated:YES];

Теперь из TviewController я перехожу к другому viewCOntroller;

XviewController *xviewController = [[XviewController alloc]init];
    [self.navigationController pushViewController:xviewController animated:YES];

в этом XviewController есть кнопка, когда я нажимаю эту кнопку, мне нужно переместить НАЗАД на TviewController Как мне сделать это программно?

примечание: я не хочу использовать pushViewController и продвигать его дальше. Мне нужно вернуться к TviewController (как при двойном нажатии на кнопку возврата)

Ответы [ 3 ]

3 голосов
/ 20 февраля 2012
[self.navigationController popViewControllerAnimated:BOOL)]
    [self.navigationController popToViewController:(UIViewController *) animated:(BOOL)];

        [self.navigationController popToRootViewControllerAnimated:(BOOL)];

- это методы возврата в иерархию

3 голосов
/ 20 февраля 2012

Just

[self.navigationController popViewControllerAnimated:YES];

Вам следует потратить некоторое время на чтение рекомендаций о контроллерах представления ...

1 голос
/ 21 февраля 2012

есть 3 возможных способа.

  1. используйте popToRootViewControllerAnimated: -> для возврата к корневому контроллеру просмотра (первый контроллер просмотра)

  2. используйте popViewControllerAnimated: -> для перехода назад 1. это точно так же, как кнопка возврата.

  3. используйте popToViewController:animated: ->, чтобы вернуться к UIViewController, который вы хотите (до тех пор, пока он находится в стеке).

Пункты 1 и 2 довольно легко реализовать, и другие ответы приведут вас к этому.

для пункта 3, вот оно:

@class TviewController.h;
@interface XviewController : UIViewController
{
//this is XviewController.h
//you may use `#import` other than use `@class` but on some reason you can't, if you use`#import XviewController.h` in your TviewController class.
}

//XviewController.m
#import TviewController.h
#import XviewController.h
@implementation

-(IBAction) backTviewController
{
   for ( UIViewController *viewController in self.navigationController.viewControllers ) 
      if ( [viewController isMemberOfClass:[TviewController class]]{
        [self.navigationController popToViewController:viewController animated:YES];
        break;
      } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...