私はそれUINavigationController
に一連の を持っUIViewControllers
ています。状況によっては、正確に 2 レベル戻したいことがあります。2回続けて呼び出すことでできると思っていましpopViewControllerAnimated
たが、2回目に呼び出すと、何もポップせず、代わりに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
こと、またはまったく別のものを呼び出すことである場合は、喜んでそれを変更します。