У меня есть UINavigationController
с серией UIViewControllers
на нем. При некоторых обстоятельствах я хочу вернуться ровно на два уровня. Я думал, что смогу сделать это, вызывая popViewControllerAnimated
дважды подряд, но оказывается, что во второй раз, когда я его вызываю, ничего не появляется и вместо этого возвращается NULL. Нужно ли сохранять ссылку на мой целевой VC и вместо этого вызывать popToViewControllerAnimated? Я могу сделать это, но это усложняет мой код, так как мне придется передавать UIViewController
*, когда я помещаю виртуальные каналы в стек.
Вот соответствующий фрагмент:
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
, или что-то еще, я с радостью его поменяю.