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

时间:2015-01-20 11:47:42

标签: ios iphone uiviewcontroller navigation

我正在尝试导航到“Home”视图控制器,为此我在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];

}

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

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

- (IBAction)unwindToFirstViewController:(UIStoryboardSegue*)sender
{
}

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

答案 2 :(得分:0)

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

navigationController?.popViewControllerAnimated(true)

或只是弹出到root?

navigationController?.popToRootViewControllerAnimated(true)

或设置新堆栈?

navigationController?.setViewControllers(homeViewController, animated: true)

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