Как получить ссылку на представление в верхней части NavigationController - PullRequest
0 голосов
/ 03 октября 2011

Я нахожусь в каком-то UIViewControlle и мне нужно вернуться к предыдущему, я использую этот код:

NSLog(@"%@", [self.navigationController popViewControllerAnimated:YES]);
// Here I need to reference to the view I am going go to to call some function before this view is being displayed
NSLog(@"Done button pressed");

Но (как написано в комментарии) мне нужно получить ссылку на представление, которое будет отображаться после выполнения функции pop (предыдущий viewController.

Ответы [ 3 ]

1 голос
/ 03 октября 2011

Вы можете использовать UINavigationController свойство topViewController , которое дает вам контроллер представления в верхней части стека. Просто позвоните, прежде чем выдвинуть его, иначе будет установлено следующее:)

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

0 голосов
/ 03 октября 2011

Кроме того, что @Geoffroy и @Maurice Kelly сказали ..

Я должен получить ссылку на объект перед вызовом popViewControllerAnimated: функции

  // I should get reference to the object here before calling the popViewControllerAnimated:  function
    NSLog(@"%@", [self.navigationController popViewControllerAnimated:YES]);
    NSLog(@"Done button pressed");
0 голосов
/ 03 октября 2011

Посмотрите на свойство viewControllers в онлайн-документах .Это даст вам массив контроллеров представления в стеке навигации:

Корневой контроллер представления находится в индексе с индексом 0 в массиве, контроллер заднего обзора находится в индексе n-2, и верхний контроллернаходится в индексе n-1, где n - количество элементов в массиве.

Таким образом, требуемый контроллер представления будет иметь индекс n-2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...