Нажмите ViewController в верхней части TabBarController - PullRequest
2 голосов
/ 28 марта 2012

Я застрял в проблеме, которую я действительно не знаю, как решить:

В моем AppDelegate определен TabBarController.

 UITabBarController *tabBarController = [[UITabBarController alloc] init];

В этом TabBarController у меня есть несколько других NavigationController, которые имеют UiVieController внутри:

ProgramController *programContr = [[ProgrammController alloc] init];
UINavigationController navControllerPro = [[UINavigationController alloc] initWithRootViewController:programContr];

ManualController *manualContr = [[ManualController alloc] init];
UINavigationController navControllerMan = [[UINavigationController alloc] initWithRootViewController:manualContr];

и я добавляю NavigationController к TabBarController:

tabBarController.viewControllers = [NSArray arrayWithObjects:navControllerPro,navControllerMan, nil]; 

Я установил tabBarController для rootViewController:

self.window.rootViewController = tabBarController;
[[self window] makeKeyAndVisible];

Это прекрасно работает. Теперь я хочу добавить «Экран входа в систему» ​​поверх этого. Я сделал это с:

[tabBarController presentModalViewController:navControllerLogin animated:YES];

Теперь TabBarController загружает свое содержимое в фоновом режиме, даже если впереди находится LoginViewController. Как загрузить TabBarController, только если на LoginViewController нажата кнопка?

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 28 марта 2012

Контроллер панели вкладок загружается каждый раз, поскольку вы устанавливаете его как rootViewController.

Вы должны установить обычный viewController в качестве корневого ... и, если вход был успешным, вы должны вызвать tabBarController для загрузки.

Другими словами, в appDelegate должно быть только окно входа в систему ... и в loginViewController, если вход в систему был в порядке, вы должны вызвать и загрузить свой tabBarController со всем его контроллером ... используя раскадровкуэто намного проще.

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