2014-02-01 3 views
0

У меня есть menuVC, которые содержат из состава других VC, один из них - loginViewController, как перейти в loginViewController из menuVC? Или это лучший способ загрузить VC из метода? Мой код:Как представить UIViewController из содержимого ViewController?

MenuViewController * menuViewController = [storyboard instantiateViewControllerWithIdentifier:@"MenuViewController"]; 
[menuViewController presentViewController:menuViewController.loginViewController animated:YES completion:nil]; 

я могу сделать это так:

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
MenuViewController * menuViewController = [storyboard instantiateViewControllerWithIdentifier:@"MenuViewController"]; 
[menuViewController showLoginViewController]; 

с ошибкой: Внимание: Попытка представить на чей взгляд не в иерархии окон!

+0

вам нужно перейти к одному – preetam

ответ

0

Вы не можете представить контроллер вида, если приложение еще не представлено. Вы можете представить его в методе viewDidAppear контроллера меню. Вам нужно будет сделать это в viewDidAppear, а не в viewDidLoad или viewWillAppear, поскольку представление, которое вы его представляете, не находится в текущей иерархии окон, в основном та же проблема, что и у вас, делая это в делете приложения. Если вы хотите, чтобы это уже было показано, когда приложение запускает, просто выберите set animated to NO. Дай мне знать, если тебе еще понадобится помощь.

+0

Итак, если я хочу иметь menuVC и загружать из него другой VC во время всего времени выполнения приложения, что мне делать? – user3254956

+0

Если вы пытаетесь показать экран входа в систему сначала над контроллером представления меню, то только логический контроллер в виде меню будет зарегистрирован таким образом, как только вы войдете в установленное значение true, чтобы контроллер просмотра не отображался каждый раз, когда viewAppears. внутри меню вид контроллер вызов [self.view presentViewController: loginViewController анимированный: НЕТ завершения: ноль]; in viewDidAppear, и он будет показан первым во время выполнения – TomWildcat

+0

. Я использовал этот подход, но теперь я запускаю свой loginVC из AppDelegate только в том случае, если пользователь не был сохранен в Keychain или из менюVC, если пользователь вышел из системы. Мне нужна помощь в архитектуре, мое приложение будет содержать menuVC, другие VC и некоторые не VC-классы. Я хочу запустить все VC из меню VC или с ним делегировать с помощью методов, также, если в меню нет такого VC, я запустил его из menuVC. Я прав? – user3254956

Смежные вопросы