1

UITabBarController、その中にいくつかUINavigationControllerネストされたアプリ、およびUITableViewControllerそれらのナビゲーションコントローラー内のサブクラスがあります。UITableViewController新しく作成した を、既存の tableView を含む既存のナビゲーション コントローラーにプッシュしようとすると、アプリがハングし、Instruments は、それが[UIWindow _subtreeMonitorsForView:]何であれ、への呼び出しを使用して、何度も何度も何かを割り当て続けることを示します。

私はコントローラーを非常に簡単な方法で押しています。

_orderForm = [[OrderFormViewController alloc] init];
[self.navigationController pushViewController:_orderForm animated:YES];

テーブルの代わりにプレーンをプッシュするように変更するとUIViewController、問題なく動作します。つまり、OrderFormViewController.h ファイルの宣言を から に変更しただけでUITableViewControllerUIViewController空白のビューが表示され、ハングすることはありません。何が問題なのですか?

注: OrderFormViewController.h の内容は非常に基本的なものであり、標準の組み込み関数のみが含まれています。の別のサブクラスをプッシュしようとしましたUITableViewController(これは を初期化するために使用すると正常に動作しますUINavigationController)、結果は同じです - アプリがハングし、メモリを消費し続けます。

4

1 に答える 1

1

私はこれと他のいくつかの同様に機能するバグの原因を見つけました。コントローラをインスタンス化する前に、アプリデリゲートでこれを行ったのは事実でした。

UIView *bg = [[UIView alloc] initWithFrame:CGRectZero];
bg.backgroundColor = [UIColor whiteColor];
[[UITableView appearance] setBackgroundView:bg];

使用することについての何かは、どのバリエーションでも[UITableView appearance]使用できないことを含めて、将来のコードではうまく機能しません(それでも機能しましたが、それは私をさらに混乱させるだけでした)。UIDatePickerUIPickerView

何らかの理由で、UIAppearanceプロトコル全体が、それが聞こえるほど有望であるように、いくつかの問題を抱えています。これが、いくつかの奇妙なバグの原因であることがわかったのはこれが初めてではありません。それを取り除くと、すべてが完全に機能します。

于 2013-02-05T15:35:03.350 に答える