viewDidAppear:という回モーダルビューコントローラーの中で発表を起動
-
03-07-2019 - |
質問
分解能: 中を再現しようとこのバグは、新鮮なプロジェクトに提出す、という発見は特定のiPhone OS2.1、パ2.2修正の問題です。スティーブンさんのご協力いを受け付けるものでをお答えていた場合のバグが存在していなかったと思コンパイルのため2.2となります。
いるアプリケーションは抜本的に変化するデータベースのスキーマの中を必要とするか変換は古いスタイルのレコードで新たに追加された仕様のものです。ユーザーが店舗の多いデータがこのアプリのようにしている表示モーダルビューコントローラの進捗バーでポートのデータ(として非常に最初のユーザーを見る).このビューのコントローラ viewDidAppear:
開始データベースの取引を開始する背景のスレッドの実際の移植する時に使用 performSelectorInMainThread:withObject:waitUntilDone:
なく前景のスレッドの進捗バーがあります。
問題は、 viewDidAppear:
することが求められていますが。そのために"開始のお取引"ステップに失敗したとのデータベース"忙しい"のメッセージが設定、ブレークポイントがその実際という二つの時一度 -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]
, で、再び -[UIViewController modalPresentTransitionDidComplete]
.その名前が表示される個人に設定されていますUIViewController方法で、私の推測のいずれかの枠組みの不具合やになっているものUIKitな期待をいいます。
二当該コードの抜粋(一部無関係なコードにまとめられた):
- (void)applicationDidFinishLaunching:(UIApplication *)application {
(register some default settings in NSUserDefaults)
// doing this early because trying to present a modal view controller
// before the view controller is visible seems to break it
[window addSubview:[self.navigationController view]];
// this is the method that may present the modal view
[self.databaseController loadDatabaseWithViewController:self.navigationController];
if(!self.databaseController.willUpgrade) {
[self restoreNavigationControllerState];
}
}
とからDatabaseControllerクラス:
- (void)loadDatabaseWithViewController:(UIViewController*)viewController {
(open the new database)
(compute the path the old database would live at if it existed)
if([[NSFileManager defaultManager] fileExistsAtPath:oldDBPath]) {
(open the old database)
[viewController presentModalViewController:self animated:NO];
}
}
いものがあるのか、それは何なのか僕はビス止めることで、またはIのファイルにバグ報告とリンゴ?
解決
私はこの私のアプリです。思ったのはなるべく確認いと思うことがで起こっていること:
- 負荷根ビュー
- 負荷モーダルビュー
- OSビューを送信した見通知のリスナーをアンインストール手順1
- の 現在の ビューコントローラは、このインスタンスがおDatabaseControllerクラスは、われるという
- OSを示した見通知のためのモーダルビュー
- 現在のビューコントローラを取得します。この場合で同じコントローラとしての最終時間
私の場合、もともとでリセットし、その最初の呼び出し viewDidAppear:
.
このケースでは二つのオプションの春の心の中で静的変数をトラックからのアップ済み;または、 UIView*
パラメータに渡された。