私はかなり面倒な問題があります。私はブログのエントリ(RSSフィードから収集)を持つテーブルビューを持っています。ビューが読み込まれると、読み込み画面が-addSubview:
を介してblogViewsビューに適用されます。そして、-viewDidAppear:
で私はデータを読み込み始めます。これは、iOS 5シミュレータとiOS 5.0.1のiPhone 4で動作します。ViewDid iOS 4.3 vs iOS 5の場合、読み込み画面は4.3に表示されません
しかし、4.3シミュレータで実行すると、読み込み画面が表示されません。ロードが完了するまで、画面は前の画面(別のtableView)でロックされます。
もちろん、ビューが表示されるまでは読み込みが開始されないという問題があります。例:タブバーのボタンをクリックしてブログを開くと、ロードが開始されます(これは-vievDidAppear:
にあります)。ロードが完了すると、画面が表示されます。これは変だけど、それはなぜそれが4.3ではなく5でそうするのだろうか?
最初のテーブルで-viewWillUnload
メソッドを使用する必要があります。読み込み画面を表示して適用しますか?つまり、読み込み画面が必要ないときに読み込み画面を読み込むと、常に読み込み画面が表示されます(1秒間のフラッシュ)。
(ロード画面では、私がイメージし、上にactivityIndicatorで開始UIImageView
を意味する)任意の入力のための
ありがとう!
おそらくiOSの5の最適化のいくつかの種類あなたが遅延してviewDidAppearからロードを起動しようとしたので、あなたがviewDidAppear方法は終了させたことがありますか? '[self performSelector:@selector(loadData :) withObject:foo afterDelay:delay]' 0.0で試してみる前に、まずdelay = 0.1で試してみてください。 – Gabriel
実際にiOS5にいくつかの変更がありました。ここには良いブログ記事があります:http://gamesfromwithin.com/view-controller-notification-changes-on-ios5 –
ありがとう! iOS 5では、ViewDidLoadとViewDidAppearを別のスレッドで自動的に分離するように思われますが、以前のバージョンではそうではありません。私はGabrielがperformSelectorで言ったようにそれを解決しました。みんなありがとう! –