テーブル ビューの背景色を普遍的に変更しようとしています。UINavigationController と TabBarController アプリの組み合わせです。AppDelegate applicationDidFinishLaunchingWithOptions に以下を入れてみました
[[[UITableView appearance] backgroundView] setBackgroundColor:[UIColor redColor]];
[[UITableView appearance] setBackgroundColor:[UIColor redColor]];
[[UITableView appearanceWhenContainedIn:[UINavigationController class], nil] setBackgroundColor:[UIColor greenColor]];
[[UITableView appearanceWhenContainedIn:[UITabBarController class], nil] setBackgroundColor:[UIColor greenColor]];
変化なし。
AppDelegate で一般的な UIView を変更しようとすると、次のように動作します。
[[UIView appearance] setBackgroundColor:[UIColor redColor]];
viewDidLoad で各テーブルビューを個別に攻撃すると、次のように動作します。
self.tableView.backgroundColor = [UIColor redColor];
たった 1 行のコードであることは理解していますが、多くのビューがあるため、追跡する必要があるのは 1 つだけです。iOS 5 UIAppearance はこのために作られたようです。なぜ機能しないのかはっきりしません。ありがとう。