2

私はそのようにセグエを実行しています;

[self performSegueWithIdentifier:@"showSecondView" sender:self];

ただし、既に読み込まれている場合は、既存のビューを表示するのではなく、常に新しいビューを「読み込む」という動作になります。

私の質問は、ロードしたビューをメモリに保持して、将来のセグエ呼び出しが既存のビューを単に「表示」するようにするにはどうすればよいですか?

ありがとう

編集:

これが私のユーザーインターフェイスのデザインです。これは基本的に、すべてのサブビューが配置される UIView (大きな灰色のブロック) を備えたカスタム サイド タブバー ビュー コントローラーです。

4

1 に答える 1

1

簡単に言えば、iOS はそれにはあまり適していませんが、できるかもしれません。場合によります。

問題は、そのビューのコントローラーがビュー コントローラー階層でどのように表現されるかです。標準のオプションはpushViewController(プッシュ セグエ) またはpresentViewController(モーダル セグエ) です。ビュー コントローラーのコンテインメント ( WWDC 2011 セッション 102を参照) を利用するカスタム セグエを実行できるかもしれませんが、それを追求したい場合は驚くでしょう。通常、人々が新しいビューを作成することの不満について話しているのを聞くとき、それは彼らが何らかのメイン ビューに戻りたいと思っている結果ですが、それを怠り、popToRootViewControllerその代わりにそのルート シーンにセグエを戻してしまいます。

思いつくかもしれない完全に理論的な (そしておそらく非現実的な) 答えは、シングルトンを使用し、ビューを移行するために少し手を加えることですが、ビュー コントローラーの封じ込めに関する WWDC 2011 セッション 102 を見た後、ビュー階層を維持することの重要性を強調しています。ビューコントローラーの階層と同期しているので、意味がないと思います。

ご希望のユーザーインターフェースを理解できれば、より有意義なご提案ができるかもしれません。アプリの 99% では、ビューのプッシュ/ポップ、モーダル ビューの表示/非表示、または兄弟ビュー間をジャンプするためのコンテナー (タブ バー コンテナーやカスタム コンテナーなど) の使用に対応しています。ユーザー インターフェイス フローはどのようなものですか?

于 2012-06-27T21:13:35.920 に答える