SplitViewControllerアプリケーションで問題が発生しました。マスタービューのテーブルから行を選択すると、ディテールビューが置換セグに置き換えられます。この問題は、新しいインスタンスを作成する/詳細ビューコントローラを再ロードするたびに発生します。私はそれが既にインスタンス化されている場合は、前のインスタンスと詳細ビューを置き換えることができますので、私はそれを持つことができる方法はありますか?テキストフィールドへの入力など、詳細ビューの状態を記憶しておきたい。segueを置き換えて新しいインスタンスを作成する
1
A
答えて
2
できません。セグエはいつも、私はその後、私は既存のVCの新しいプロパティを記入し、NOを返すセグエを交換するが、MasterVCに、私は
-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if ([identifier isEqualToString:@"showCalculatorViewController"]) {
if (self.splitViewController) {
NSObject *currentDetail = [self.splitViewController.viewControllers lastObject];
if ([currentDetail isKindOfClass:[RootCalcViewController class]]) {
....
を実装して使用してビューコントローラ
1
をインスタンス化します。
私はmasterVCからのナビゲーションを処理するので、私は最初のDetail View ControllerとしてUINAvigationControllerを持っていません。
また、AppDelegateで、正しい詳細VCを設定する必要があります.FlishLaunchingWithOptions生成されたコードは、それがUINavigationControllerであることを前提としています。生成されたMasterViewControllerのviewDidLoadも同様です。 UINAvigationControllerの詳細を置き換えると、アプリのクラッシュを軽減できます。
異なるView Controllerを読み込むときに、「Segueを置き換える」を置き換えます。
0
または、DetailControllerにSingletonパターンを実装させ、+ new、+ allocなどの呼び出しをシングルトンメソッドに転送することができます。
関連する問題
- 1. 同じタイトルの新しいファイルの作成と置き換え
- 2. ホワイトスペースをハイフンに置き換えてURLを作成します。
- 3. UISplitViewControllerマスタービューを置き換えるためにSegue
- 4. クラスの新しいインスタンスをすべて置換/モックする
- 5. 新しいディレクトリを作成して、古いものを強制的にruby on railに置き換えます。
- 6. 動作していない文字列を置き換える
- 7. 同時に新しいインスタンスを更新して作成する
- 8. Sinon:スタブとオブジェクト全体を置き換えて新しいオブジェクトに置き換えます
- 9. stdinを置き換えるファイルディスクリプタを作成する(select()内)
- 10. 破損したものを置き換えるためにSpringに新しいシングルトンBeanを作成する
- 11. 'foo'のすべてのインスタンスをjQueryに置き換えます。
- 12. 古いURLを新しいURLに置き換える
- 13. 作成したオブジェクトの__init__を__new__コンストラクタに置き換えます。
- 14. c#プレースホルダをtext.htmlに置き換えて置き換えます。
- 15. ホバーテキストを置き換えて画像に置き換えます
- 16. のすべてのインスタンスを置き換えファイルから
- 17. 古いdivコンテンツを新しいコンテンツに置き換えます。
- 18. Ubuntuのログイン画面置き換えを作成するには
- 19. domノードを新しいノードに置き換える方法は?
- 20. C#コンパイラを新しいRoslynビルドに置き換える
- 21. TabLayoutでフラグメントを新しいフラグメントに置き換える
- 22. アンドロイドマーケットでアプリケーションを新しいバージョン1.1に置き換える
- 23. CDockablePane内の新しいCMFCPropertyGridCtrlを置き換える方法
- 24. XSLT - 新しい行をbrタグに置き換える
- 25. jQuery fadeinとfadeoutを作成してhtmlテキストを置き換える
- 26. Facebook APIはJSONの新しい行を置き換えます
- 27. javascript関数を新しい関数に置き換えます。
- 28. QTabWidgetのページを新しいウィジェットに置き換えます。
- 29. 画像ファイルを新しい画像に置き換えます
- 30. 新しい関数の中にarguments.calleeを置き換えます。
私はちょうどiPadのストーリーボード(スプリットビューコントローラを含む)で作業を始めていますが、置き換えの代わりに使用できるプッシュセグはありませんか?あるいは、フレームワークはこの場合にプッシュを許可しないのですか?これはiPhoneのイディオムでうまくいきます。 – Rob
私はプッシュを試みたが、私はバックナビゲーションが欲しくないと決めた。私は毎回新しいインスタンスを作成したことを覚えています。私はいくつかの詳細ViewControllerをマスターViewController上のプロパティとして宣言し、それらを最初のsegueでインスタンス化することで解決しました。その後私はperformSegueを呼び出さず、そのインスタンスを手動で詳細ビューにプッシュ/ポップします。 –
replace seguesの使い方も知りたいです。代替セグとプッシュセグの違いは何ですか?置き換えられたビューコントローラがメモリに残っている場合、どのように復元できますか? – Matt