在没有导航控制器的情况下推送 UIViewController

Posted

技术标签:

【中文标题】在没有导航控制器的情况下推送 UIViewController【英文标题】:pushing UIViewController without Navigation Controller 【发布时间】:2013-06-22 12:48:50 【问题描述】:

我正在使用该方法在 if 条件下推送另一个 UIViewController:

initViewController *MW = [initViewController alloc];
MW = [self.storyboard instantiateViewControllerWithIdentifier:@"init"];
[self.navigationController pushViewController:MW animated:YES];

现在我改变了我的架构,我刚刚移除了我的导航控制器。这就是为什么,由于没有 NavigationController 存在,这些步骤将不再帮助我。现在我如何在不按下按钮的情况下推动另一个 ViewController -(IBAction) 。我只是想在 Storyboard 中使用它。

问候。

【问题讨论】:

【参考方案1】:

仅供参考:没有 UINavigationController 你不能推送到另一个 Controller 。您可以使用

生成控制器

PresentViewController

 [self presentViewController:objPortrit animated:YES completion:^    ];

例如:

 initViewController *MW = [initViewController alloc];
   MW = [self.storyboard instantiateViewControllerWithIdentifier:@"init"];
    [self presentViewController:MW animated:YES completion:^

            ];

编辑

For your comment : 

使用 PresentViewController 生成 ViewController 后,您需要将其关闭以生成另一个 ViewController 。

你可以从这个中解脱出来,像这样在各自的 ViewController 中使用他的方法。 :

 -(void)viewDidDisappear 
[self dismissModalViewControllerAnimated:YES];

【讨论】:

非常感谢您的快速回答。它工作并处理了我所有的问题:D 一个问题刚刚出现 :) - 警告:尝试在 上显示 ,其视图不在窗口层次结构中!

以上是关于在没有导航控制器的情况下推送 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用导航控制器的情况下推送 UIViewController?

在没有导航控制器的情况下导航到另一个视图控制器

如何在没有任何推送序列的情况下快速从另一个视图控制器访问方法?

在一个视图控制器上隐藏导航栏,在推送的控制器上显示它

如何以编程方式在导航控制器上推送下一个视图控制器?

如何在没有导航控制器的情况下获取导航栏后退按钮