Мне интересно узнать, могу ли я разработать приложение, имеющее 2 контроллера вида. Я прошел через некоторые ссылки, но не смог найти решение, если я использую раскадровку Если у меня уже есть rooviewcontroller, как я могу удалить его и добавить другое представление в качестве rootviewcontroller? Любые мысли?Как добавить 2 корневых контроллера в приложение IOS с помощью раскадровки
2
A
ответ
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 раскадровку, как показано на рисунке:
Позвольте мне знать, если это удовлетворит ваши требования.
2
В то время, есть только один RootViewController в приложении,
можно заменить непосредственно используя следующие,
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourVC *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"YourVC"];
self.window.rootViewController = rootViewController;
в методе AppDelegate,
Если есть два контроллера вида, то ни один из них не является «корнем»? – trojanfoe
жаль, что я не мог получить u –
Не имеет значения - теперь имеет смысл теперь вы отредактировали свой вопрос. – trojanfoe