Я создаю приложение, которое в настоящее время имеет 3 ViewControllers. Один из них используется после успешного входа в систему, поэтому не имеет значения в этом вопросе.
Я использую смесь раскадровок и строю вещи программно, когда нахожу, что раскадровки не дают мне точный контроль, который мне нужен.
Первый ViewController встроен в мою 'MainStoryboard'. Он имеет форму входа и информационную кнопку внизу. Я связываю его с моим AppDelegate, выполняя следующие действия внутри didFinishLaunchingWithOptions :
ViewController *viewController = (ViewController *)self.window.rootViewController;
Поскольку я хотел форсировать рендеринг UIWebView (другая история), я создаю второе представление программно. Я делаю следующее внутри didFinishLaunchingWithOptions :
infoViewController = [[InfoViewController alloc] init];
[infoViewController view];
Внутри обоих моих ViewControllers я устанавливаю ссылку на appDelegate, как показано ниже:
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
У меня есть информационная кнопка в моем первом ViewController, которая ведет вас к infoViewController. При нажатии вызывается следующий код:
appDelegate.infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:appDelegate.infoViewController animated:YES];
Вышеописанное прекрасно работает, переворачивает экран и показывает InfoViewController.
На моем InfoViewController у меня есть кнопка, которая должна вернуть вас на страницу входа в систему, я пробовал все виды, чтобы заставить это работать, но это просто вылетало из моего приложения. Ничто не похоже на работу. Я пробовал следующее:
appDelegate.viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:appDelegate.viewController animated:YES];
и
[self.navigationController popToRootViewControllerAnimated:YES];
и
[self.navigationController popViewControllerAnimated:YES];
и
[self.navigationController popToViewController:appDelegate.viewController animated:YES];
Я подозреваю, что последние 3 могут быть больше связаны с тем, когда у вас есть контроллер представления навигации, и вы хотите вернуться к корню? Я не уверен, но в любом случае это не работает. Раньше я работал с использованием раскадровок, поэтому я уверен, что это должно быть легко! Как уже упоминалось, я переключился на создание infoViewController программно, чтобы заставить UIWebView отображаться до появления представления.
Любая помощь высоко ценится.