問題タブ [state-restoration]

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 投票する
0 に答える
362 参照

ios - Xamarin MvvmCross iOS 状態の復元の問題

現在、MvvmCross を使用して、iOS (ターゲット iOS 8) Xamarin ソリューションで状態の保存/復元を行うことができません。コア ビュー モデルは、ここで指定されているように保存/復元を実装しますhttps://github.com/MvvmCross/MvvmCross/wiki/View-Model-Lifecycle

Android バージョンのソリューションでは状態が正しく保存および復元されますが、iOS バージョンでは機能しません。

関連するビュー コントローラーに復元 ID を設定し、「オプトイン」メソッドをアプリ デリゲート クラスに追加しました…</p>

基本的な単一ビューの iOS Xamarin アプリを作成すると、アプリがバックグラウンドに入ったときにビュー コントローラーの EncodeRestorableState オーバーライド メソッドが呼び出されます。ただし、同様の単純な MvvmCross 実装では、このオーバーライドされたメソッドは呼び出されなくなりました (ビュー モデルの SaveState メソッドも呼び出されません)。

私は助けになるものを見つけることができず、多くの人が同様の質問をしているのを見つけたようですが、現在回答がありません (たとえば、MvvmCross の SaveState は iOS アプリケーションで呼び出されていません)。

これで正しい方向に向けるのに役立つ情報があれば、非常に感謝しています。ありがとう。

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

ios - 状態の復元は iOS 8.3 で機能しませんか?

状態の復元は iOS8.3 ではうまく機能しませんが、同じコードは iOS8.2 でもうまく機能します。この問題は、アップルのサンプル コードを使用して再現できます。

再現する手順:

  1. アプリを起動し、2 番目のタブを参照します
  2. アプリを殺す
  3. アプリを再起動

予想された結果:

復元結果として 2 番目のタブに戻るはずです

実績:

「application:shouldRestoreApplicationState」が呼び出されていないことが原因で、最初のタブに戻ります。

バージョン:

iOS 8.3 12F69

ノート:

構成:

iPhone シミュレーター、iPhone 6P


誰かが同様の問題に遭遇しましたか? それを回避する方法はありますか?

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

ios - iOS での状態の復元に対処するためのハードワーク

「警告: 復元中のマーカー ファイルを作成できません。」の対処方法

  1. メイン ストーリー ボードでビュー コントローラーに復元 ID を割り当てました。

  2. また、コードで作成されたビュー コントローラーに復元 ID を割り当てました。

例えば:

  1. 私は次のリンクのように尋ねました

iOS での状態の復元

問題は、アプリケーションを実行すると、次の警告も表示されることです。

  • 修復中のマーカー ファイルを作成できません。

他に何をする必要があるのか​​ わかりません。

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

ios - 3D Touch と状態の復元に関する問題

アプリに状態の復元を実装する作業を行っていますが、問題が発生しました。最近、テーブル ビューに 3D Touch サポートを追加しましたが、状態の復元を追加したことを除いて、毎回完全に機能しました。アプリがテーブル ビューを復元するときに、テーブル ビューがプレビュー用に登録されていないかのように、セルに圧力を加えても何も起こりません。

私はこのコードを持っていますviewDidLoad:

効果があるかどうか試してみましたviewDidAppearが、違いはありませんでした。

何か案は?

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

ios - セグエをアニメーション化せずにビューステートを復元する

アプリに状態の復元を追加しましたが、うまく機能しているように見えますが、その機能には満足していません。

基本的に、このアプリはディズニーの待ち時間トラッカーなので、最初にアプリを開いたときに 4 つのパークが選択されます。これらの公園のいずれかをタップすると、アプリのメイン セクションに移動します (スライド アップ アニメーション付き)。問題は、アプリを再度開いて数秒後にビューが復元されると、スライド アップ セグエが実行されることです (これは非常に気が散ります)。

なぜそれが起こっているのか誰にも分かりますか?

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

ios - 復元中に View Controller の変数を設定するにはどうすればよいですか?

View Controller X では、prepareForSegue() を使用して View Controller Y の変数を設定しています。

しかし、復元中に、YdecodeObjectForKey() myvarの を更新する方法がわかりません。avar

状態の復元中に、あるビュー コントローラーのメンバー変数を別のビュー コントローラーから設定するにはどうすればよいですか?

解決策の 1 つの方法は、復元中にフラグを設定することです。

そして、クラスの後半で:

このアプローチでは、Y View Controller への参照をどのように取得しますか? Storyboard で識別子を指定しましたが、既存の Y ビュー コントローラーを検索できる API が見つかりません。

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

ios - CoreBluetooth: 状態の保存と復元のテスト

私は Xcode 7 を使用しており、BLE アクセサリと CoreBluetooth フレームワークを使用して iOS9 で「状態の保存と復元」をテストする方法を理解したいと思います (この質問を既に見つけたわけではありませんが、これをもっと理解する必要があると感じています)。深さ)。

アプリが以前に実行されていなかった場合でも、ユーザーの電話が範囲内にある場合にのみ、アクセサリから一部のデータを自動的に転送するアプリが必要です。

これを、このユース ケースのさまざまなバリエーションを反映する 3 つのシナリオ、つまりシナリオ A、シナリオ B、およびシナリオ C に分類しようとしました。

次のシナリオをテストするために必要な基本的な手順を誰かが説明してくれますか?

また、これらのシナリオは理にかなっていますか?

  • シナリオ A:

    1 - アプリはアクセサリを検出し、アクセサリ情報を保存します

    2 - アプリ / ユーザーがアクセサリ範囲を終了

    3 - アプリがユーザーによって強制終了されました

    4 - アプリが実行されていないときに、ユーザーがアクセサリ範囲に再び入ります。

    5 - 予想されるイベント: 状態の復元がアクティブ化されることを期待しています ( willRestoreStateメソッドが CentralManager で呼び出され、AppDelegateで didFinishLaunchingWithOptions が呼び出されます。

    ここから、アクセサリを含む周辺機器のリストを取得し、それに接続するかどうかを決定できるはずです。

    6 - 接続することにした場合、アプリはバックグラウンドで実行され続けると思います (バックグラウンド モードが有効になっているため)。

このシナリオをテストするにはどうすればよいですか?


  • シナリオ B:

    1 - アプリはアクセサリを検出し、アクセサリ情報を保存します

    2 - アプリがアクセサリに接続し、特性にリクエストを送信してデータ転送を開始します

    3 - アプリはアクセサリからデータを受信して​​います

    4 - アプリ / ユーザーがアクセサリ範囲を終了

    5 - アプリがバックグラウンド モードになる

    6 - アプリがバックグラウンド モードで実行されている間に、ユーザーがアクセサリの範囲に再び入りました。

    5 - 予想されるイベント: 状態の復元がアクティブ化されることを期待しています ( willRestoreStateメソッドが CentralManager で呼び出され、AppDelegateで didFinishLaunchingWithOptions が呼び出されます。

    ここから、アクセサリを含む周辺機器のリストを取得し、ステータスがCONNECTEDであることを確認できるはずです。その後、データ ストリームを再リクエストする必要があります (以前のストリームを再開する方法はないと思いますよね?)

    6 - アプリはバックグラウンドでストリームを継続する必要があります

このシナリオをテストするにはどうすればよいですか?


  • シナリオ C:

    1 - アプリはアクセサリを検出し、アクセサリ情報を保存します

    2 - アプリがアクセサリに接続し、特性にリクエストを送信してデータ転送を開始します

    3 - アプリはアクセサリからデータを受信して​​います

    4 - アプリ / ユーザーがアクセサリ範囲を終了

    5 - アプリがバックグラウンド モードになる

    6 - ユーザーがアプリを強制終了

    7 - アプリが実行されていないときに、ユーザーがアクセサリ範囲に再び入りました

    8 - 予想されるイベント: 状態の復元がアクティブ化されることを期待しています ( willRestoreStateメソッドが CentralManager で呼び出され、AppDelegateで didFinishLaunchingWithOptions が呼び出されます。

    ここから、アクセサリを含む周辺機器のリストを取得して再接続し、データ転送を再リクエストできるはずです (シナリオ B の場合と同じように再開します)。

    9 - アプリがバックグラウンドで実行され続けることを期待しており (バックグラウンド モードが有効になっているため)、アプリはバックグラウンドでストリームを継続する必要があります

このシナリオをテストするにはどうすればよいですか?

希望はあまり混乱しません。

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

ios - Core Bluetooth の状態の保存と復元をトリガーする方法

状態の保存と復元 状態の保存と復元は Core Bluetooth に組み込まれているため、アプリはこの機能を選択して、システムにアプリの中央および周辺マネージャーの状態を保存し、特定の Bluetooth 関連タスクを実行し続けるように要求できます。アプリが実行されなくなった場合でも、代わりに。これらのタスクのいずれかが完了すると、システムはアプリをバックグラウンドで再起動し、アプリに状態を復元してイベントを適切に処理する機会を与えます。上記のホーム セキュリティ アプリの場合、システムは接続要求を監視し、アプリを再起動して、ユーザーが帰宅し、接続要求が完了すると、centralManager:didConnectPeripheral: デリゲート コールバックを処理します。

これをトリガーしてコードをテストするにはどうすればよいですか?

サービス付きのアクセサリーを手に入れました。サービスをスキャンするアプリがあり、状態の保存を選択しました。ただし、何をトリガーする必要があるのか​​わからないため、論理的にテストする方法がわかりません。これらは私が失敗したオプションです:

これらすべてのオプションで、 Xcode -> deviceに移動してログを確認しようとしましたが、状態復元ログは見られませんでした。

ありがとう

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

ios - NSUndomanager の変更は、CoreData の起動間で保持されますか

CoreData を使用してアプリに取り消しを実装しています。私のアプリも状態の復元を使用しています。

ドキュメントから明確でないのは、NSUndoManager が起動と状態の復元の間で元に戻す履歴を保持するかどうかです。そうでない場合、それは大きな問題ではありません。それは、それに応じてコーディングできるように知る必要があるだけです。

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

ios9 - iOS9 でのアプリケーション復元の問題

アプリケーションには、状態情報を保存および復元する機能があります。API の shouldSaveApplicationState と shouldRestoreApplicationState を App デリゲートで使用し、application:willEncodeRestorableStateWithCoder と application: didDecodeRestorableStateWithCoder を対応するビュー コントローラー クラスで使用します。したがって、アプリケーションは、任意の状態からアプリケーションを強制終了した後でも状態を復元します。これは、iOS 8.x までは正常に機能していました。

iOS 9.x 以降、アプリをフォアグラウンドから強制終了した場合、復元が機能しないことが判明しました。これは、アプリケーションの再起動中に shouldRestoreApplicationState メソッドがトリガーされないためです。

他のすべてのシナリオでは、アプリケーションの復元機能は正常に機能しています。

アプリケーションのコード変更はありませんが、アプリケーションの動作が異なります。

これはアプリケーションの重要な機能の 1 つなので、助けてください。