Я создаю приложение, которое в настоящее время имеет 3 ViewControllers. Один из них используется после успешного входа в систему, поэтому в этом вопросе не имеет значения.Возврат к первому ViewController из второго ViewController
Я использую смесь Раскадровки и строя вещи программно, когда я нахожу, что раскадровки не дают мне точного контроля, который мне нужен.
Первый 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 визуализировать до появления представления.
Любая помощь очень ценится.
Я думаю, что нижеприведенные ответы на приглашение отчиститьModalViewController верны. На стороне примечания, что вы делаете с помощью [просмотра InfoViewController]; ?? Кроме того, вы можете настроить стиль перехода контроллера при его создании. – danh
Привет, я попробую предложения ниже чуть позже (конец моего перерыва на обед и обратно к моей работе PHP/JS). [просмотр InfoViewController] буквально показывает UIWebView, содержащий некоторую информацию об этом приложении. Я подозреваю, что, может быть, вы думаете, что я должен просто показать эту информацию в другом представлении в первом ViewController? Я действительно занимаюсь ObjC/iOS в течение 3-4 недель, поэтому, вероятно, я не полностью придерживаюсь лучших практик. –
Gotcha, но просмотр - это свойство ViewController. Это представление управляется контроллером представления ... не глаголом, а существительным. Я думаю, что это нуль в момент, когда вы просите об этом. (Это может привести к изменению состояния при первом загрузке контроллера представления из ниба, который должен выполнять первую, ленивую загрузку представления, но вам, как правило, не нужно беспокоиться об этом. Презентация просто работает) , Попробуйте прокомментировать эту строку и посмотрите, не ведет ли она себя одинаково. – danh