私は現在、検索バーと検索表示コントローラーを備えた UITableViewController にプッシュするボタンが付いた ViewController を持つアプリケーションに取り組んでいます。セルにいくつかのデータがあり、それが入力されます。次のコードを追加して、検索バーを非表示にし、表示されたときにクリアカラーにします。
[[self.searchBar.subviews objectAtIndex:0] removeFromSuperView];
[self.searchBar setBackgroundColor:[UIColor clearColor]];
CGRect newBounds = [[self tableView]bounds];
newBounds.origin.y = newBounds.origin.y + searchBar.bounds.size.height;
[[self tableView] setBounds:newBounds];
これは、iOS シミュレーターを使用しているときに機能しますが、デバイスで実行して上下にスクロールし始めると、クラッシュして次のエラーが表示されます。
EXC_BREAKPOINT (code = EXC_ARM_BREAKPOINT, subcode = 0xdefe)
次に、Zombie Objects を有効にしてさらにデバッグすると、次のようになりました。
-[UIView frame]: message sent to deallocated instance 0x156b1430
離陸時:
[[self.searchBar.subviews objectAtIndex:0] removeFromSuperView];
[self.searchBar setBackgroundColor:[UIColor clearColor]];
デバイスでアプリケーションを再度実行すると、クラッシュせず、正常に動作します。
何が起こっているのか、これがどのように起こっているのか、誰にもアイデアがありますか? 前もって感謝します!