Я разделил свой проект на две раскадровку:IOS - Переход между различной раскадровкой контроллерами отображения
Main.storyboard
- Для аутентификации пользователя. Также это раскадровка по умолчанию.Login.storyboard
- Для не прошедшего проверку подлинности пользователя.
App Делегат файл:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if(user is authenticated)
{
[self presentLoginScreen:YES];
return YES;
}
Войти экран в приложении файл делегат:
-(void)presentLoginScreen:(BOOL)animated{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Login" bundle:[NSBundle mainBundle]];
UIViewController *vc =[storyboard instantiateInitialViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = vc;
}
На выходе из системы, Логин экран представлен. Я определил это в приложение делегата файла:
-(void)logOut{
//clear data
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Login" bundle:[NSBundle mainBundle]];
UIViewController *vc =[storyboard instantiateInitialViewController];
self.window.rootViewController = vc;
//Show login Screen
[self presentLoginScreen:NO];
}
От ViewController из MainStoryBoard (letsay mainstoryboardVc.m), выход называется как:
-(void)didTouchLogOut{
NSLog(@"GoodBye");
AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];
[appDelegateTemp logOut];
}
Это вызывает много вопрос:
Во-первых, когда я выхожу из системы и перехожу к экрану входа в систему, я все еще вижу
mainstoryboardVc.m
в фоновом режиме, который выглядит очень неуклюжим.я выйти, снова войти и снова пытается выйти, я вижу следующее сообщение:
Представление контроллеров отображения на отдельных контроллерах зрения не приветствуется
и экран входа в систему не представлен.
Я попробовал много ответов в Интернете на просмотр контроллера презентаций между двумя раскадровки без сохранения истории, ничего не кажется, работает ...
Так ты сделал вещи гораздо более сложным без усиления? * Почему вы используете две разные раскадровки? – luk2302
Какой смысл использовать 2 раскадровки? –
Coz количество сцен было велико, два компонента довольно независимы, и каждый раскадровка была разработана различными разработчиками. Слияние двух будет последним вариантом, но было бы здорово, если бы мне не пришлось использовать этот последний вариант. –