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



我正在尝试导航到"主页"视图控制器,为此我在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];
}

我有一个问题要问你

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];

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

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

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

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

navigationController?.popViewControllerAnimated(true)

或者只是突然扎根?

navigationController?.popToRootViewControllerAnimated(true)

还是设置新堆栈?

navigationController?.setViewControllers(homeViewController, animated: true)

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

相关内容

  • 没有找到相关文章