ViewController не отображается, пока я не выйду и не перезапущу приложение - PullRequest
0 голосов
/ 22 марта 2012

Я только что сделал свое приложение универсальным, объединив отдельные проекты 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. Странно я тоже могу с этим взаимодействовать. По сути, я решил проблему, сделав окно прозрачным. Очевидно, что это не идеальное решение, поэтому, если кто-то может придумать причину, дайте мне знать.

Ответы [ 2 ]

1 голос
/ 23 марта 2012
[self.window addSubview:self.splitViewController.view];
[self.window makeKeyAndVisible];
return YES;

должно быть в конце метода -applicationDidFinishLaunching:WithOptions:.

0 голосов
/ 25 апреля 2012

Поигравшись с цветом фона окна, я обнаружил, что по какой-то причине он находится на вершине иерархии представления. Затем я сделал цвет фона окна прозрачным и увидел SplitViewController. Странно я тоже могу с этим взаимодействовать. По сути, я решил проблему, сделав окно прозрачным.

...