2010-08-29 4 views
2

У меня есть приложение TabBarController с 4 видами. Я положил на всех 4-х viewControllers методы АВТОПОВ возвращающихся да:Вращение всех видов TabBarController

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
    return YES; 
} 

Благодаря этому, теперь, когда я повернуть iPhone вращение работает, и даже TabBar поворачивается.

В каждом зрении я могу использовать следующий код для обновления для просмотра, когда происходит вращение:

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 
    [self adjustViewsForOrientation:toInterfaceOrientation]; 
} 

- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation { 
    if (orientation == UIInterfaceOrientationLandscapeLeft || 
     orientation == UIInterfaceOrientationLandscapeRight) { 

//Here i can update the view when it goes to landscape 

    } 
    else if (orientation == UIInterfaceOrientationPortrait || 
      orientation == UIInterfaceOrientationPortraitUpsideDown) { 

//Here i can update the view when it goes to portrait 

    } 

} 

Проблема заключается в том, что, когда я делаю поворот, только текущий отображаются вид обновляется. Если позже я меняю вид, нажимая на tabBar, я вижу, что представление не обновлено для новой ориентации.

Есть ли способ сделать все взгляды осведомленными о изменении ориентации?

ответ

0

Хорошо, я нашел его! = D

Уловка с помощью функции:

- (void)viewWillAppear:(BOOL)animated 

Просто вызовите ее в viewControllers, и вставить в код, чтобы обновить представление. Наслаждайтесь!

+0

Отметьте, как ответил. – bstahlhood

+0

Я должен подождать до завтра, чтобы сделать это! – Abramodj

+0

Я подозреваю, что это произошло только для просмотров, которые вы уже посетили, но не для тех, кого вы посетили в первый раз. – fogelbaby

Смежные вопросы