Вид не отображается правильно при переключении видов - PullRequest
1 голос
/ 28 июня 2009

Мое приложение состоит из 3 просмотров. Я определил 3 вспомогательных метода в AppDelegate для переключения между каждым представлением (чтобы каждое представление могло вызывать другое), которые выглядят так:

-(IBAction)goToView1 {
    if ( view1 == nil )
    {
        View1 *thisView = [[View1 alloc] initWithNibName:@"View1" bundle:nil];
        view1 = thisView;
    }

    for (UIView *view in window.subviews)
        [view removeFromSuperview];

    [window addSubview:view1.view]; 
}

Если пользователь хочет переключиться на другое представление, я привязываю кнопку к IBAction, определенному в контроллере представления:

-(IBAction)goToOtherView:(id)sender {
    ViewSwitcherAppDelegate *root = [[UIApplication sharedApplication] delegate];   
    [root goToView1];
}

Все это прекрасно работает для переключения видов, но когда изображение отображается, оно отображается неправильно, как если бы оно игнорировало строку состояния:

альтернативный текст http://lh4.ggpht.com/_nbwj7pSrW10/SkcGEZ3XH0I/AAAAAAAABMs/nAkkja27e8I/s576/ViewSwitchingProblem.png

Что я делаю не так?

Он хорошо воспроизводится при запуске приложения, поэтому я подозреваю, что в добавлении подпредставления к окну что-то не так.

Заранее спасибо!

1 Ответ

1 голос
/ 28 июня 2009

Так как вы не используете контроллер вида для его отображения, вам необходимо настроить рамку вида самостоятельно. Вы должны установить его источник {0, 20}, чтобы учесть пространство для строки состояния.

Но вам лучше использовать UIViewController и вставить это в UINavigationController. См. Документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...