我正在更新iOS应用并在呈现视图控制器时收到以下警告:Presenting view controllers on detached view controllers is discouraged <UINavigationController: 0x984e640>.
app委托加载主视图控制器,如下所示:
[self.window setRootViewController:[MainViewController sharedInstance]];
[[MainViewController navigationController]setViewControllers:@[[MenuViewController new]]];
MainViewController创建一个新的导航控制器,并在viewDidLoad
中将新的导航控制器添加到视图中:
[self.view addSubview:_navigationController.view];
现在我需要提供另一个视图控制器。我试过用这个:
[_navigationController presentViewController:anotherViewController animated:YES completion:nil];
和此:
[[MainViewController navigationController] presentViewController:anotherViewController animated:YES completion:nil];
+ (UINavigationController*)navigationController {
return [[MainViewController sharedInstance]navigationController];
}
我和他们两个都得到了相同的警告并且视图控制器加载了,但我无法导航回来。我显然做错了什么,但我不确定它是什么。
答案 0 :(得分:0)
我认为您希望推送而不是以模态方式呈现:presentViewController是UIViewController提供模式VC的方法,而{{3}将VC推送到导航堆栈中。
请改为尝试:
[_navigationController pushViewController:anotherViewController animated:YES];