无法以编程方式导航到另一个 UIViewController iOS

Posted

技术标签:

【中文标题】无法以编程方式导航到另一个 UIViewController iOS【英文标题】:Not able to navigate to another UIViewController programmatically iOS 【发布时间】:2015-03-18 15:17:22 【问题描述】:

我正在尝试导航到“主页”视图控制器,为此我在 ContainerViewController 中编写了以下代码。但是一旦代码执行,应用程序就会挂起,并显示 100% 的 CPU 使用率。请帮忙。

- (IBAction) home:(UIButton *)sender



    HomeViewController *homeViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];

    [self.navigationController pushViewController:homeViewController animated:YES];

    //[self presentViewController:homeViewController animated:YES completion:nil];


【问题讨论】:

把你的代码放到application:didFinishLaunchingWithOptions:这里..然后只能检查你的问题是什么.. 【参考方案1】:

我有一个问题要问你

1-如果您想将 SecondViewController 推送到 FirstViewController,那么您的代码就足够了

2-如果你在firstViewController中有一个containerview,并且你想将SecondViewcontroller的视图添加到firstViewController中

然后使用此代码

UIViewController*vc1 = [[test1 alloc]initWithNibName:@"SecondViewController" bundle:nil];

//add to the container vc which is self    
[self addChildViewController:vc1];

//the entry view (will be removed from it superview later by the api)
[self.view addSubview:vc1.view];

【讨论】:

每个屏幕上有两个容器视图控制器,它们充当页眉和页脚。单击主页按钮时,我刚刚加载了主屏幕。这基本上是从登录屏幕、注销屏幕完成的。 我没有正确理解您的问题,您在两个不同的 Viewcontroller 中使用两个 containerViewController 无法实现什么。我认为您可以像教程cocoanetics.com/2012/04/containing-viewcontrollers/4 那样只使用一个containerViewController 来实现这一点,或者您可以使用这个github.com/defagos/CoconutKit/wiki/Containers【参考方案2】:

我想你想在这里放松一下。在您的第一个视图控制器中添加:

- (IBAction)unwindToFirstViewController:(UIStoryboardSegue*)sender


然后,您需要将每个视图控制器的主页按钮连接到视图控制器底部的绿色退出按钮,选择 unwindToMainMenu 选项。按下后,这将带您回到第一个视图控制器。

【讨论】:

我使用的是 Xcode 6.1.1,没有绿色退出按钮。请告诉我如何按照您的建议进行检查。顺便说一句,我的代码有什么问题?当我实现注销功能时,相同的代码正在工作。为什么应用程序会挂在这里?【参考方案3】:

您是否尝试过弹出当前视图?

navigationController?.popViewControllerAnimated(true)

或者只是弹出到根目录?

navigationController?.popToRootViewControllerAnimated(true)

或者设置一个新的堆栈?

navigationController?.setViewControllers(homeViewController, animated: true)

代码在 Swift 中,但在 ObjectiveC 中的工作方式相同

【讨论】:

这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。 这确实为作者提供了一种导航到他的“主页”视图控制器的方法 我会检查并通知您。顺便说一句,我的代码有什么问题?当我实现注销功能时,相同的代码正在工作。为什么应用程序会挂在这里?

以上是关于无法以编程方式导航到另一个 UIViewController iOS的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式导航到另一个视图控制器/场景

以编程方式导航到另一个故事板上的导航控制器和标签栏控制器内的视图控制器

Swift:通过 TabBar 和导航控制器以编程方式从一个视图转换到另一个视图

如何在 ios 9 中以编程方式导航到另一个具有“当前上下文”表示的视图控制器,目标 C

使用 gatsby 以编程方式导航到动态 url

如何在android中以编程方式在片段之间导航?