1

誰でも次の質問で私を助けることができますか?Notes アプリと同様のナビゲーションを備えたアプリに取り組んでいます。私が直面した問題は、1 つのレベル内でナビゲーションを実装し、ルート ビューを前の画面として保持する方法です。したがって、私が達成する必要があるシナリオは次のとおりです。 1. 最上位のリストから詳細ビューにドリルダウンします。2. この詳細ビューから、次/前のアイテムの詳細ビューに移動します。3. 戻るボタンでルート ビューに移動する必要があります。

私はいくつかのアプローチを試しましたが、誰もうまくいきませんでした。私の観点からの最も正しい解決策は、ルート コントローラーと詳細コントローラーの間に中間コントローラーを作成して、この次/前のリダイレクトを処理することです。ただし、ここでの主な問題は、ある詳細ビューから別の詳細ビューに切り替えてもナビゲーション ウィンドウが同じままであるため、この場合は Notes アプリが正しく機能するかどうかにかかわらず、アニメーションには関与しないことです。

この場合、コントローラーの相互作用を調整する方が良い方法を教えていただけますか?

前もって感謝します。非常に大きな投稿で申し訳ありません。できるだけ有益な情報を提供しようとしていました。

よろしく、ローマ

4

3 に答える 3

1

うん、行儀が悪い。ジョンスマの返事は最高です。コントローラーを再作成したい場合は、これが機能することがわかりました。

[parent performSelectorOnMainThread:@selector(showMyItem:)
                         withObject:myNextItem 
                      waitUntilDone:NO];
[self.navigationController popViewControllerAnimated:NO];

performSelectorOnMainThreadメインループの次の実行までメソッドの実行を遅らせ、それまでに前のコントローラーは既に削除されており、ナビゲーションコントローラーは安定した状態にあります。

于 2009-09-06T15:44:28.720 に答える
1

この質問は解決しました。現在のビューをポップして、リスト内の次のオブジェクト用に作成された新しいビューをプッシュするだけで十分です。覚えておくべき唯一のことは、pop 呼び出しの前にナビゲーション コントローラーへの参照を保存することです。

于 2009-09-07T21:25:32.220 に答える
1

最良の実装は次の方法だと思います。

データが格納されている Note クラスがあるとします。

1 つはメモのリスト、もう 1 つは詳細の 2 つのビュー コントローラーを持つことができます。これらは両方とも、ナビゲーション コントローラーに追加できます。次に、次のノートに切り替えたい場合は、何らかの方法でそのオブジェクトを取得し、-setNote: 呼び出しで詳細コントローラーに割り当てます。そのメソッドは、アウトレットが表示しているものを変更する責任があります。

于 2009-09-06T13:17:59.327 に答える