私は iOS ナビゲーション コントローラー アプリに取り組んでいますが、疑問が生じました。どこにも見つかりませんでした。ナビゲーションコントローラーを作成し、他の複数のビューコントローラーを使用してナビゲーションを行う場合、これらのビューコントローラーがメモリに正確に保存され、戻るボタンなどをクリックしたときにナビゲーションコントローラーが前のコントローラーに移動できる方法.誰かが私に説明してもらえますか?
ありがとうございました。
私は iOS ナビゲーション コントローラー アプリに取り組んでいますが、疑問が生じました。どこにも見つかりませんでした。ナビゲーションコントローラーを作成し、他の複数のビューコントローラーを使用してナビゲーションを行う場合、これらのビューコントローラーがメモリに正確に保存され、戻るボタンなどをクリックしたときにナビゲーションコントローラーが前のコントローラーに移動できる方法.誰かが私に説明してもらえますか?
ありがとうございました。
コンセプトはスタックのようにシンプルです。オブジェクトを押して、ポップすることもできます。使用するとき
[navigationController pushViewController:viewController animated:YES];
を使用してアクセスできるviewControllerのスタックにオブジェクト(ここではviewController)をプッシュします[navigationController viewControllers];
u は既存のコントローラを確認できます:
NSLog("view controllers %@", [navigationController viewControllers]);
viewControllers は、すべてのオブジェクトがプッシュされた NSArray です。そのため、特定のコントローラーへの参照は常にそこにあるため、任意のビューコントローラーに戻ることができます
戻るボタンをクリックするtopViewController
と、配列からポップアウトします。
popToRootViewController
viewController 配列に追加された最初のコントローラーに u をポップします。
u を使用して、アレイ内の特定のコントローラーに戻ることもできます
[self.navigationController popToViewController: animated:];
すでに述べた NSArray(viewControllers) からパラメーターを渡す必要があります。例:
[self.navigationController popToViewController:[[navigationController viewControllers] objectAtIndex:1] animated:YES];
それが役に立てば幸い。幸せなコーディング:)
UINavigationController は、他のビュー コントローラーを格納します。View Controller を表示するときは、それを Navigation Controller にプッシュします。
[navigationController pushViewController:viewController animated:YES];
これは、ナビゲーション コントローラーがビュー コントローラーへの参照を保持するため、解放されないことを意味します。同様に、View Controller をポップして前のものを表示します。この時点で、現在のView Controllerへの参照が解放されます。View Controller が解放されなくても、通常どおりアンロードおよびリロードされる可能性があることに注意してください。