私のアプリデリゲートで、別の画面をセットアップしました(airPlay用)。
2 番目のウィンドウを作成し、それに 2 番目の画面を割り当ててアプリを実行すると、ストーリーボードの TableView が黒色に変わります。tableView が正しくレンダリングされていないかのようです。問題を次のように切り分けました。
self.HDTVwindow.screen=[[UIScreen 画面] objectAtIndex:1];
ここで、HDTVWindow はエアプレイ アプリの 2 番目のウィンドウです。このコードをコメントアウトすると、ストーリーボードは正常に動作し、UITableView は素晴らしく白くなります。異なる画面に割り当てられているにもかかわらず、appDelegate で 2 つの UIWindows を作成して、ストーリーボードを混乱させていますか??
私の appDelegate については、以下を参照してください。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([[UIScreen screens] count]>1)
{
CGRect frame = [[UIScreen screens]objectAtIndex:1].bounds;
self.HDTVwindow = [[UIWindow alloc] initWithFrame:frame];
UIImage* astonLogo=[UIImage imageNamed:@"AstonUni720p.png"];
UIImageView* astonLogoView=[[UIImageView alloc] initWithImage:astonLogo];
astonLogoView.frame=frame;
[self.HDTVwindow addSubview:astonLogoView];
self.HDTVwindow.hidden = NO;
self.HDTVwindow.screen=[[UIScreen screens] objectAtIndex:1];//PROBLEM!!
}
// Set Up Storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *mainViewController = [storyboard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = mainViewController;
[self.window makeKeyAndVisible];
return YES;
}