Я только что сделал свое приложение универсальным, объединив отдельные проекты iPhone и iPad. Кажется, все работает, но есть одна серьезная ошибка.
Когда приложение iPad запускается, оно просто отображает черный экран (предположительно, окно) и строку состояния. Когда я нажимаю кнопку «Домой», я внезапно вижу SplitViewController, когда он исчезает. Когда я снова открываю приложение, отображается SplitViewController.
Я не могу понять, почему контроллер отображается только после закрытия и повторного открытия приложения. Есть идеи?
(я понятия не имею, что вызывает это, поэтому, если вам нужны примеры кода из определенных мест, дайте мне знать).
Спасибо.
Edit:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Appirater appLaunched:YES];
// Registers this class as the delegate of the audio session.
[[AVAudioSession sharedInstance] setDelegate: self];
// Allow the app sound to continue to play when the screen is locked.
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
justOpened = YES;
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
{deleted}
} else {
[self.window addSubview:self.splitViewController.view];
[self.window makeKeyAndVisible];
CGRect rect = CGRectMake(-2, self.window.frame.size.height-29, self.window.frame.size.width+2, 29);
imgBar = [[UIImageView alloc] initWithFrame:rect];
imgBar.contentMode = UIViewContentModeScaleToFill;
imgBar.image = [UIImage imageNamed:@"wood_btm.png"];
imgBar.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
self.splitViewController.showsMasterInPortrait = YES;
self.splitViewController.title = @"Exams";
self.splitViewController.splitPosition=280;
}
return YES;
}
Обновление:
Поигравшись с цветом фона окна, я обнаружил, что по какой-то причине он находится на вершине иерархии представления. Затем я сделал цвет фона окна прозрачным и увидел SplitViewController. Странно я тоже могу с этим взаимодействовать. По сути, я решил проблему, сделав окно прозрачным. Очевидно, что это не идеальное решение, поэтому, если кто-то может придумать причину, дайте мне знать.