Проверьте nibName предыдущего UIViewController - PullRequest
0 голосов
/ 02 июня 2011

У меня есть приложение на основе навигации.На определенном экране мне нужно проверить, с какого экрана пришел пользователь.Я думал о чем-то вроде

NSArray *viewControllers = [self.navigationController viewControllers];
int viewControllersSize = [viewControllers count];
if ([[viewControllers objectAtIndex:viewControllersSize-2] nibName] == @"Name") {
    ...
}

Но проблема в том, что если пользователь нажимает «назад» на определенном экране, контроллер представления будет удален из массива, определенного выше.

Myтекущее решение имеет глобальную переменную, которая сообщает мне, пришел ли пользователь с определенного экрана, но я полагаю, есть более элегантное решение, верно?

1 Ответ

0 голосов
/ 02 июня 2011

Не уверен, что вы имели в виду:

Но проблема в том, что если пользователь нажимает «назад» на определенном экране, контроллер представления будет удален из массива, определенного выше.

Не все контроллеры представления используют один и тот же контроллер навигации?

Если для всех UIViewController используется один и тот же UINavigationController, для этой цели можно использовать UIViewController parentViewController.Если вы идете в обратном направлении, сохраните ссылку на контроллер представления, из которого вы пришли, или, может быть, просто [viewController class] (to string) сделают свое дело.

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