編集ページにつながるナビゲーションバーのボタンと追加ボタンを備えたUITableViewを使用してプログラムを作成しています。テーブル内のアイテムをクリックすると、そのアイテムに関連する情報を含むビュー(rView)がプッシュされます。このビューには、編集ページにつながる編集ボタンがあります。編集ページの完了ボタンに「parentViewControllerがrViewに移動するUITableViewである場合、それ以外の場合はpopViewController」というifステートメントを配置する方法はありますか?これを行う方法があると思いますが、そのための構文がわかりません。ありがとう
1 に答える
1
私が正しく理解していれば、あなたはUINavigationControllerを持っていて、それをプッシュします
- UITableView
- 「rViewController」(ビューをプッシュすることはできません。コントローラーである必要があります)
- 「EditController」
ただし、手順2を省略して、直接編集画面に移動する可能性があります。
これで、最後のコントローラーがポップされたときに、スタック上にない場合でも、常に「rViewController」に移動できるようにする必要があります。
まず、parentViewControllerはスタック上の前のコントローラーではなく、UINavigationController自体であるため、現在の問題とは何の関係もありません。
これを行う方法は、NSArrayを使用してUINavigationControllerのviewControllersプロパティを明示的に設定することです。私はこれを試していませんが、これはうまくいくはずです:
ユーザーが「追加」ボタンを押したら、編集ビューコントローラーを押すだけでなく、次のようにします。
NSArray* stack = navigationController.viewControllers;
navigationController.viewControllers = [stack arrayByAddingObject:rViewController];
[navigationController pushViewController:editController animated:YES];
(ちなみに、ループのように非常に短命なローカル変数を除いて、「rView」のような名前は使用しないことをお勧めします。説明的な名前を使用することは、Cocoaイディオムの大部分であり、長い間非常に役立ちます。走る。)
于 2009-12-06T19:21:51.983 に答える