如何以编程方式打开UINavigationController

时间:2016-02-23 00:26:41

标签: ios objective-c uinavigationcontroller

我正在尝试以编程方式打开UINavigationController。 这是我的代码:

UIViewController *vc = [[UIStoryboard storyboardWithName:@"Storyboard"
  bundle:nil] instantiateViewControllerWithIdentifier:@"ViewControllerID"];
UINavigationController *nc = [[UINavigationController alloc] 
   initWithRootViewController:vc];
nc.modalTransitionStyle = UIModalPresentationNone;
[self presentViewController:nc animated:YES completion:NULL];

我一直收到以下错误:

  

由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'不支持推送导航控制器'

4 个答案:

答案 0 :(得分:3)

你是完全正确的,但只需推出你的导航控制器即可。

对于前。

UIViewController *vc = [[UIStoryboard storyboardWithName:@"Storyboard"
  bundle:nil] instantiateViewControllerWithIdentifier:@"ViewControllerID"];
UINavigationController *nc = [[UINavigationController alloc] 
initWithRootViewController:vc];
[self pushViewController:nc animated:YES];

答案 1 :(得分:0)

你应该这样做:

UIViewController * viewControllrer = [[UIStoryboard storyboardWithName:@“Storyboard”bound:nil] instantiateViewControllerWithIdentifier:@“ViewControllerID”]; UINavigationController * rootViewController = [[UINavigationController alloc] initWithRootViewController:viewController]; self.navigationController pushViewController:rootViewController animated:YES];

答案 2 :(得分:-1)

该消息非常具体。它告诉你,你不能以模态方式呈现导航控制器。

答案 3 :(得分:-1)

在视图控制器内创建导航控制器。在另一个呈现的视图控制器中添加引用的导航控制器视图作为子视图。