2009-06-07 3 views
1

У меня есть определенный UIViewController (ViewController1), который показывает содержимое базы данных. И я хочу показать еще один контроллер вида (ViewController2), если база данных не была загружена раньше.Выбор между контроллерами представления

Итак, когда пользователь входит в ViewController1, и база данных не была загружена раньше, я хочу взять его в ViewController2 вместо ViewController1.

Что-то вроде этого:

@implementation ViewController1 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    if (isDatabaseLoaded) {show contents of ViewController1;} 
    else {take user to ViewController2;} 
} 

Как я могу это сделать? Каков самый элегантный способ сделать это?

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

ответ

2

У вас есть несколько различных вариантов.

  1. Вы можете нажать на ViewController2.

    [ViewController1.navigationController pushViewController: ViewController2 animated: YES];

  2. Вы можете представить ViewController2

    [ViewController1 presentModalViewController: ViewController2 анимированные: ДА];

  3. Вы можете просто поменять точку зрения ViewController1 к тому, что из ViewController2

    ViewController1.view = ViewController2.view;

+0

Я попробовал второй вариант - presentModalViewController. Но в этом случае весь экран закрывается ViewController2. И даже панель вкладок закрывается. Как я могу избежать этого? –

+0

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

+0

У меня были проблемы с №3. Кажется, что добавление subviews впоследствии никогда, кажется, не работает правильно для меня. –

0
if (!isDatabaseLoaded) 
    [self.navigationController pushViewController:ViewController2 animated:YES]; 

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

  • Нет связанных вопросов^_^