私はかなり新しい IOS 開発者です。全体として、すべてが順調に進んでいます。
コードのリストを保持するプログラムがあります。「+」を押して新しいコードを追加すると、新しいビューが Web サービスを呼び出してデータを検証し、有効な場合はそれを内部の sqlite データベースに追加します。ここまでは順調ですね。
アプリケーションに入ると、データベース内のすべてのコードでデータビューが更新されます。再び良い。ユーザーがいずれかのコードを選択すると、次のようになります。
別のサービスを呼び出して、データベース (興味がある場合は SQL サーバー) から詳細なデータを取得します。このデータを初期化されたテーブルに入れます。別のビューでデータを表示します。
私がやっているコードは次のとおりです。
最初のウィンドウの prepareForSegue で、必要なコードを取得し、それを 2 番目のビュー インスタンスに配置します。データベースをクリーンアップして準備し、prepareForeSeque を終了します。上記のすべてが機能しています!
次に、2 番目のビュー コントローラーの viewDidLoad が呼び出されます。
渡された変数を取得し、サービス リクエストを作成して、サービスを呼び出します。その後終了し、別のデータビューが numberOfRowsInSection を呼び出します。これは、XML データを処理してデータベースにプッシュするサービスからのコールバックがまだ呼び出されていないため、0 を返します。
セマフォ変数を作成して、データを処理したらサービス コールバックに設定してみました。次に、viewDidLoad で、この変数が設定されるのを待ってスピンしました。[NSSthread sleepForTimeInterval:0.25] を使用してスピンしましたが、サービス コールバックの呼び出しがブロックされている疑いがあります。
メインビューとサブビューの間に中間ビューを配置することで「ごまかす」ことができます-そして、サブビューへのセグエを手動で発行します-しかし、これはやり過ぎだと思います!
スタン