2014-01-15 5 views
2

Мне интересно узнать, могу ли я разработать приложение, имеющее 2 контроллера вида. Я прошел через некоторые ссылки, но не смог найти решение, если я использую раскадровку Если у меня уже есть rooviewcontroller, как я могу удалить его и добавить другое представление в качестве rootviewcontroller? Любые мысли?Как добавить 2 корневых контроллера в приложение IOS с помощью раскадровки

+0

Если есть два контроллера вида, то ни один из них не является «корнем»? – trojanfoe

+0

жаль, что я не мог получить u –

+0

Не имеет значения - теперь имеет смысл теперь вы отредактировали свой вопрос. – trojanfoe

ответ

3

Вы можете сделать это. Вам просто нужно добавить код ниже в место/действие, где вы хотите изменить rootViewController.

//First dismiss your currently loaded ViewController 
[self dismissViewControllerAnimated:YES completion:nil]; 

//Get the keyWindow of the app 
UIWindow *window = [[UIApplication sharedApplication]keyWindow]; 

NSString *identifier = @"Your_Identifier_Name_For_ViewController";// this is the identifier name(Storyboard ID) 
                    // of the AnotherRootViewController 
                    // which you have to set in your Storyboard 
                    // as shown in the figure. 

//Now create an object of the AnotherRootViewController 
AnotherRootViewController *newRootViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

//Finally set your newRootViewController 
[window setRootViewController:newRootViewController]; 

И сделать настройку AnotherRootViewController раскадровку, как показано на рисунке:

enter image description here

Позвольте мне знать, если это удовлетворит ваши требования.

2

В то время, есть только один RootViewController в приложении,

можно заменить непосредственно используя следующие,

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    YourVC *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"YourVC"]; 
    self.window.rootViewController = rootViewController; 

в методе AppDelegate,