Я разрабатываю приложение, которое можно использовать без немедленного входа, но для определенных вкладок требуется вход. Поэтому я хочу, чтобы при каждом открытии этих вкладок окно входа в систему отображалось вверх. Если пользователь нажимает кнопку «Отмена» в представлении входа в систему, модальное окно должно быть закрыто, и оно должно вернуться к тому же представлению, в котором был пользователь ранее. Если вход выполнен успешно, окно должно быть закрыто и вкладка должна загрузиться. Какой лучший способ реализовать это? Должен ли я сделать собственный контроллер панели вкладок?
РЕДАКТИРОВАТЬ: Я принял подход кофеина. Кажется, это работает для меня:
// App delegate
#pragma mark - UITabBarController delegate
- (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController {
if ([[viewController topViewController] loginRequired]) {
LoginViewController *loginViewController = [[LoginViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:loginViewController];
[tabBarController presentModalViewController:navController animated:YES];
[loginViewController release];
[navController release];
return NO;
} else {
return YES;
}
}