У меня есть эта раскадровка:Пропустить взгляд, если пользователь уже зарегистрирован
Второй ViewController является Войти экране.
Я проверяю, зарегистрирован ли пользователь и если он прав, я хочу пропустить экран входа в систему и перейти к диспетчеру tableview. И, с другой стороны, когда пользователь не регистрируется, покажите окно входа в систему, и, когда пользователь выполнит вход в систему, я хочу, чтобы следующее представление было первым в стеке навигации.
Теперь я устанавливаю TableView как корневой элемент с этим кодом объяснено в другом посте
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];
InitialViewController *nvc = [[InitialViewController alloc] init];
[viewControllers replaceObjectAtIndex:0 withObject:nvc];
[self.navigationController setViewControllers:viewControllers];
Он работает, но когда я хочу щелкнуть в ячейке, что делает переход к деталям просмотра Безразлично» т работы. если я удалю экран входа в систему и настроит представление таблицы как root в контроллере навигации, он работает.
Кто-нибудь знает почему?
Другие способы, чтобы пропустить вид входа оценены
EDIT: С помощью этого решения он работает, теперь у меня есть две навигационные контроллеры и я перейти от одного к другому с этим кодом
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
InitialViewController *initial = [storyBoard instantiateViewControllerWithIdentifier:@"appRootController"];
AppDelegate *myAppDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
myAppDelegate.window.rootViewController = initial;
Я не знаю, правильно ли это решение, но оно работает.
Как вы называете это segue? Вы уверены, что используете один и тот же идентификатор segue как в коде, так и в раскадровке? – marzapower
Я не называю segue, я заменяю «Контроллер входа в систему» с помощью «Начального контроллера просмотра» в качестве корневого элемента в навигационном контроллере – jramillete