从导航控制器导航到普通视图控制器

Posted

技术标签:

【中文标题】从导航控制器导航到普通视图控制器【英文标题】:navigating from navigation controller to normal view controllers 【发布时间】:2012-12-05 06:17:25 【问题描述】:

我有一个基于导航的视图控制器(根?),我在其中(以编程方式)创建了一个主页按钮,将用户带到主菜单。

这个主菜单是一个简单的视图控制器,而不是导航控制器的一部分。

为了连接两者,我使用了以下代码:

ViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainMenu"];
[self.navigationController pushViewController:vc animated:YES];

尽管工作,它只是将视图控制器与导航栏一起推入堆栈。

我想要做的是关闭导航控制器并返回开始。

我尝试使用以下代码:

ViewController *viewController = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[self presentModalViewController:viewController animated:YES];

但是我得到以下崩溃:原因:'无法在包中加载 NIB:'NSBundle

我的问题是如何以编程方式打开另一个视图控制器并关闭导航控制器?我看不到按钮,所以无法进行转场。

在此感谢您

【问题讨论】:

【参考方案1】:

试试这条线:

ViewController *viewController = [[ViewController alloc]initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];

代替:

 ViewController *viewController = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];

【讨论】:

【参考方案2】:

当您从 navigationContorller 使用 push on 时,它会将您的视图推送到 stack 上,因此您可以做一件事,只需在视图的 viewWillAppear 中隐藏您的 navigatioBar

self.navigationController.navigationBarHidden = YES;

【讨论】:

以上是关于从导航控制器导航到普通视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义导航栏链接到导航控制器?

从导航栏视图控制器导航到标签栏视图控制器

如何从一个视图控制器导航到另一个视图控制器

从搜索控制器导航后缺少导航栏

如何从 popoverpresentation 视图控制器导航到另一个视图控制器

从集合视图单元格单击按钮导航到视图控制器