У меня есть UINavigationController
с серией UIViewControllers
на нем. В некоторых случаях я хочу вернуться ровно на два уровня. Я думал, что могу сделать это, дважды позвонив popViewControllerAnimated
, но оказывается, что во второй раз я его вызываю, он ничего не выскакивает и вместо этого возвращает NULL. Нужно ли хранить ссылку на мой пункт назначения VC и вместо этого вызывать popToViewControllerAnimated? Я могу это сделать, но это усложняет мой код, так как мне придется проходить UIViewController
*, поскольку я нажимаю VC на стек.
Вот соответствующий фрагмент:
UIViewController* one = [self.navigationController popViewControllerAnimated:YES];
if (...) {
// pop twice if we were doing XYZ
UIViewController *two = [self.navigationController popViewControllerAnimated:YES];
// stored in "one" and "two" for debugging, "two" is always 0 here.
}
Я делаю что-то странное здесь? Я хочу написать идиоматический код, поэтому, если "правильным" способом является вызов popToViewControllerAnimated
или что-то еще, я с радостью изменю его.