問題タブ [uikit-state-preservation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7716 参照

iphone - iOS 6 - 状態の保存と復元

状態を保存するために iOS 6 API を実装しましたが、動作します。アプリを終了して数ミリ秒間再起動すると、復元されたビュー コントローラーが飛び込みますが、起動時に表示するメインのビュー コントローラーに置き換えられます。

アプリがメイン ウィンドウのルート ビューを起動するたびに設定しているので、これが問題になるはずです。

これが私のコードです:

-(void)commonInitializationLaunching:(NSDictionary *)launchOptions で、ウィンドウのルート ビューを設定していることがわかります。そこに何を入れたらいいのかわからない。おそらく、保存された状態があるかどうかを確認してから、このメソッドをロードしますか? しかし、どのように?

ありがとう!

ロブのアドバイスに従って私が試したことは次のとおりです。

何も入っていませんwillFinishLaunching...commonInitializationLaunchingメソッドからウィンドウコードによっても削除しました。

0 投票する
4 に答える
1858 参照

iphone - UIKit の状態保存がスクロール オフセットを復元しない

iOS 6 で UIKit 状態保存を使用しているアプリがあります。View Controller の状態 (つまり、選択されているタブとナビゲーション コントローラー階層) を保存/復元できますが、テーブル ビューのオフセットを復元することはできません。ビューとビューコントローラーのストーリーボードに復元識別子があり、ビューコントローラー (テーブルのデータソース)UIDataSourceModelAssociationは次のように実装されています。

modelIdentifierForElementAtIndexPath:inView:アプリがバックグラウンドに入るmodelIdentifierForElementAtIndexPath:inView:と呼び出されますが、呼び出されることはありません。

0 投票する
1 に答える
481 参照

ios - iOS 6 の状態の保存と復元の自動テスト

iOS 6 の新しい状態保存および復元機能を使用するようにアプリを更新しています。アプリでこれをテストするための最良のガイダンスを知る限り、手動で行う必要があります (例: http://www.absoluteripple.com/1 /post/2012/09/ios-6-state-preservation-and-restoration.html )。

状態の保存と復元の自動テストを行う方法はありますか?

0 投票する
2 に答える
5047 参照

iphone - iOS 状態の保存とコンテナー ビュー

コンテナー ビューを使用しているストーリーボードにビュー コントローラーがあります。両方とも復元識別子が設定されています。親は正常に保存および復元されています。しかし、子供はそうではありません。どちらも、-encodeRestorableStateWithCoder:または子-decodeRestorableStateWithCoder:ビュー コントローラーで呼び出されていません。

ビュー コンテナで作成された子ビュー コントローラを保存する正しい方法は何ですか? 子のView Controllerをparentsに保存できますが-encodeRestorableStateWithCoder:、これにより保存されますが、復元中に使用する方法がありません。

0 投票する
1 に答える
617 参照

ios - WWDC 2012 セッション 208 で「Restrospector」ツールに関する記述はどこにありますか?

WWDC 2012 セッション 208 は、UIKit の状態の保存と復元に関するものです。かなり最後にデバッグツール「Restrospector」について触れています。ディスク上に永続化された状態を視覚化する必要があります。

状態自体は、「Saved Application State」ディレクトリの「data.data」ファイルに保存されます。開くと XML ファイルですが、その一部は人間が読めるものではありません。

Apple 開発者フォーラムと開発者サイトを検索しましたが、このツールも求める人しかいませんでしたが、誰も答えがありませんでした。多分スタックオーバーフローが役立つでしょうか?

0 投票する
1 に答える
148 参照

ios - iOS でコントローラーを切り替えるときに TableViewCell の色を保持する方法

1 番目の CategoryViewController と 2 番目の CheckListTableController を含む StoryBoard セグエ アプリケーションを作成しました。カテゴリ(ボタン)に関して、CheckListTableControllerのテーブルビューで別の質問リストを開いています。

tableViewセルでチェックボタンとチェック解除ボタンとそれぞれの色を設定しました。NSMutableArray を取得し、これに indexPath を追加して、特定の色をセルに設定しました。

これらのコントローラー間を移動するときは、tableView セルの色を予約する必要があります。

これを行う方法についてのアイデア。前もって感謝します。

クエリで編集 26Aug13

今、plist ファイルまたは Core データを使用して、同じ機能が必要です。そのユーザーはタスクのセッションを保存して後でアクセスできます。例えば。セッション 1 で、彼は ABC 建物のチェックマークを外し、セッションを保存しました。セッション 2 では、別の場所の XYZ 建物のアクティビティをチェック/アンチェックし、保存しました。

ここではどの方法が適していますか。plist ファイルまたはコア データ? 特定の解決策にリダイレクトできますか。

いくつかのコードで編集

0 投票する
0 に答える
224 参照

ios - サービスからのデータに依存するアプリの iOS 状態の保存と復元の戦略

アプリがサーバーからの大量のデータに依存しており、アプリの実行間でデータが大幅に変化する可能性がある場合に、状態の復元と保存に対処する方法について、適切な戦略を持っている人はいますか?

状態の保存と復元について説明しているビデオ WWDC 2012-Session 208 を見ましたが、アプリで使用されているデータ モデルではなく、アプリのビュー コントローラーを保存および復元していることを理解しています。

しかし、View Controller が表示するものが、サービスから受け取るデータに非常に関連していて、その一部が古くなっているか、アプリをシャットダウンして再起動してから存在しなくなった場合、オブジェクトの ID を保存できず、後で再表示します。

私が見つけたサンプル アプリのほとんどは、アプリ データがかなり静的で、サービスからのものではないように見える単純なバージョンをカバーしているようです。

私の質問は次のとおりです。1) クライアント/サーバー スタイルのアプリで考慮しなければならない落とし穴やその他の注意事項は何ですか?

2) 注意事項を考慮した上で、データを更新するリモート サービスへの呼び出しをアプリのどこで開始しますか?

0 投票する
3 に答える
4378 参照

ios - ストーリーボードなしの UIViewController 状態の復元が機能しない

ストーリーボードを使用しない iOS 6 アプリで状態の保存と復元を実装したいと考えています。状態を保存して復元したいメインのView Controllerは、UINavigationControllerの一部であるUIViewControllerです。

私のView ControllerはUIViewControllerRestorationプロトコルを拡張しています。必要なメソッドをすべて実装していると思いますが、シミュレーターからの encodeRestorableStateWithCoder または decodeRestorableStateWithCoder への呼び出しは見られません。

アプリのデリゲートは次のようになります。

これらの呼び出しはすべてデバッグ ウィンドウに表示されます。アプリの中断時に表示される MyMainViewController は次のようになります。

シミュレーターを使用して保存と復元をテストする方法:

この作業を行うために他に何が欠けているのかわかりません。

0 投票する
1 に答える
625 参照

core-data - 親コンテキストに保存せずに一時的な NSManagedObjectContext を永続化する方法

CoreData を使用してアプリケーション データ モデルを管理しています。ユーザーが行った変更を保存または破棄できるように、編集ビュー コントローラーで子マネージド オブジェクト コンテキストを使用します。

次のように子コンテキストを作成します。

ユーザーが「完了」ボタンをタップすると、次のように変更を保存します。

ユーザーが「キャンセル」をタップすると、editMoc コンテキストが破棄されます。

質問は次のとおりです。アプリ全体で状態の保存と復元を使用しており、アプリがバックグラウンドになったときに、さらに復元するために変更を含む editMoc コンテキストを保存したいと考えています。ユーザーが変更を保存するか破棄するかをまだ決定していないため、editMoc を mainMoc とマージしたくありません。

NSCoding プロトコルを使用して editMoc をシリアル化しようとしましたが、登録されたオブジェクトはこの方法で保存されません。私もparentContextを変更しようとしましたが、これは例外をスローします。

子コンテキストと状態保存を使用するのが一般的な方法であるため、上記のタスクを達成するための優れた方法があるはずです。

私のプロジェクトは iOS 6.0 以降で実行されます。

0 投票する
2 に答える
248 参照

ios - モーダル セグエ ビュー コントローラーの保持

簡単な質問があります。私には が入っているViewController(親) がUITableViewいます。viewControllerそのビュー内には、別の(子)へのモーダル セグエをトリガーするボタンが含まれていますUITableView。子viewControllerは、親のテーブルを更新するフィルターとして機能します。私の目標は、閉じたviewController後もフィルター (子) の状態を保持することです。そのため、戻ってフィルターの選択を更新できます。

調査の結果、ドキュメントには、アプリが終了する状況などで、アプリケーション全体の状態を保持するための情報が含まれていることがわかりました。これがviewController、却下後にこれを保持するために必要な種類のアプローチであるかどうかはわかりません。

リンクは次のとおりです。

Apple ドキュメント

ブログウォークスルー

これはこれにアプローチする適切な方法ですか、それともすべて間違っていますか?

ありがとう!