Ios 如何使用popViewController导航

Ios 如何使用popViewController导航,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我是iOS开发新手,我使用parse.com作为我的后端。 我想从[View Controller 2]导航到[View Controller 3] 但这并不正确。 这是密码 根据您发布的图像,在显示VC2之前,不会显示VC3,也不会将其推送到控制器 此方法popToViewController:animated:要求在控制器堆栈之前和中显示控制器,以便将堆栈弹出回它 你可以通过弹出到根目录,然后推送你的视图来实现你想要的 [self.navigationController popToRoo

我是iOS开发新手,我使用parse.com作为我的后端。 我想从[View Controller 2]导航到[View Controller 3] 但这并不正确。 这是密码


根据您发布的图像,在显示VC2之前,不会显示VC3,也不会将其推送到控制器

此方法
popToViewController:animated:
要求在控制器堆栈之前和中显示控制器,以便将堆栈弹出回它

你可以通过弹出到根目录,然后推送你的视图来实现你想要的

[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController pushViewController:_profilePhotoViewController animated:YES];
请确保推送前已分配了
\u profilePhotoViewController


更新

在故事板中,为VC3设置一个标识符,例如“VC3Identifier”

如下图所示,您可以执行此操作

  • 选择您的控制器
  • 显示实用程序
  • 显示身份检查器
  • 将“VC3Identifier”放入情节提要ID字段
  • 然后,您需要分配此控制器的新实例并将其添加到导航控制器

    YourController *vc3 = [self.storyboard instantiateViewControllerWithIdentifier:@"VC3Identifier"];
    [self.navigationController setViewControllers:@[vc3] animated:YES];
    

    好吧,我不完全确定您的代码是如何工作的,以及什么会触发视图的更改,但在您的代码中,您称之为:

      [self.navigationController popToViewController:_profilePhotoViewController animated:YES];
    
    是您需要处理的(假设profilePhotoViewController是VC3)

    转到你的故事板,在演示视图(你开始的VC)中按住ctrl键并单击并拖动,最后到达VC 3。VC 3应该亮起蓝色。放手,你会看到一个下拉菜单。选择“推送”。这将为您创建一个过渡阶段。接下来,您需要给它一个标识符,所以单击刚刚创建的segue并转到属性检查器,在“identifier”字段中键入“ProfilePictureSegue”,然后按enter(或return)

    然后转到包含您发布的代码并替换的文件

      [self.navigationController popToViewController:_profilePhotoViewController animated:YES];
    
    与:

    鲍勃是你叔叔。运行它

    编辑 我又看了一遍你的照片,看起来你的VC3放错地方了。创建从VC2到VC3的序列,而不是从导航控制器到VC3的序列。正如我前面解释的,在VC2.m文件中调用segue,它将在两个文件之间转换


    如果需要更多功能。

    是否要推送或弹出视图控制器?什么功能不起作用?您是否以模式显示您的视图?我想使用popViewController@HaniIbrahim请查看脚本图表链接@CaptJak代码[self.navigationController popToViewController:_profilePhotoViewController动画:是];未打开我要访问的视图控制器。请查看此链接以查看情节提要转换
    popToRootViewController
    将删除堆栈上位于rootView顶部的所有视图控制器,在您的图片中,它看起来像是欢迎页面。换句话说,它不会出现任何VC,它会删除它们。你想去哪里?从欢迎来到VC1?你在用故事板吗?谢谢。我想进入视图控制器3(主页),但它将带我进入(欢迎页面)。我应该怎么做?尝试以下代码
    self.navigationController.viewControllers=@[\u profilePhotoViewController]但这将没有动画我尝试过并得到以下结果:**由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'***-[\uu NSPlaceholderArray initWithObjects:count:::]:尝试从对象[0]插入nil对象'***第一次抛出调用堆栈:执行此操作的最佳方法是什么?请原谅,但我收到了这个…由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“Receiver()没有标识符为“ProfilePictureSeque”的segue。。。VC3连接到导航控制器。我可以通过任何方式导航到VC3,因为我正试图去那里。我无法创建从VC2到VC3的segue,因为VC2有一个注册按钮,用于发送数据进行解析,以验证注册或登录访问。如果数据正确,则链接到纵断面图视图控制器。关于错误,正确的单词是segue,而不是seque。它是一个“G”。否则,您可能没有设置标识符,或者代码中的标识符与序列中的标识符不匹配。你想从哪里导航到VC 3?当你计划旅行时,你不会告诉航空公司“我想去法国”。你说“我想从西班牙去法国”。什么是源点?
    
      [self.navigationController popToViewController:_profilePhotoViewController animated:YES];
    
    [self performSegueWithIdentifier:@"ProfilePictureSegue"];