Ios 如何跳到上一个场景?

Ios 如何跳到上一个场景?,ios,objective-c,Ios,Objective C,我在故事板中创建了两个场景和一个xib文件。我在xib文件中放置了两个按钮(按钮1转到第一个场景,按钮2转到第二个场景)。如果我从第一个场景移动到第二个场景,然后从那里移动到第三个场景(xib文件),如果我单击按钮1,它将正确导航(即,到第一个场景),如果我单击按钮2,它返回到第二个场景。它正常工作。但如果我直接移动到第三个场景(xib文件),现在如果我单击按钮2,它只返回到第一个场景。但我希望它返回到第二个场景。按钮1正常工作,但不是按钮2。所以有人能帮我吗?我希望按钮2按照我说的那样工作 我

我在故事板中创建了两个场景和一个xib文件。我在xib文件中放置了两个按钮(按钮1转到第一个场景,按钮2转到第二个场景)。如果我从第一个场景移动到第二个场景,然后从那里移动到第三个场景(xib文件),如果我单击按钮1,它将正确导航(即,到第一个场景),如果我单击按钮2,它返回到第二个场景。它正常工作。但如果我直接移动到第三个场景(xib文件),现在如果我单击按钮2,它只返回到第一个场景。但我希望它返回到第二个场景。按钮1正常工作,但不是按钮2。所以有人能帮我吗?我希望按钮2按照我说的那样工作

我的代码是:

@implementation XYZGreenViewController
-(IBAction)goredscreen:(id)sender
{
[self.navigationController popToRootViewControllerAnimated:TRUE];
}

-(IBAction)goBlueScreen:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}

将UINavigationController视为堆栈,每次导航到新的场景/视图控制器时,实际上就是将新的视图控制器推送到堆栈中

在第一个场景中,当您到达第三个场景时,您的堆栈中有以下内容

[first scene | second scene | third scene]
如果为此按下任何一个按钮,将弹出第三个场景并返回第二个场景

在第二种情况下,直接从第一个场景转到第三个场景,然后堆栈中将包含以下内容

[first scene | third scene]

显然,如果弹出viewcontroller,它将返回到第一个场景,因为第二个场景从未在堆栈上。但是,您可以使用此poptoviewcontroller中的
pushViewController:

将其推入堆栈中。在这种情况下,poptoviewcontroller将不起作用。首先,您必须导入推送到视图控制器的类。 SecondViewController.h -(void)btn2clicked:(id)发送者{ SecondViewcontroller*Objsecond=[[SecondViewcontroller alloc]initwithNibName:@“SecondViewcontroller”捆绑包:nil]

[self.navigationcontroller pushtoviewcontroller:objssecond动画:yes];
您可以这样使用..

首先告诉我们哪个iAction由button1处理,哪个由button2处理。在您的解释中完全混淆了。只需简单解释。这里所有人都是开发人员。他们都能理解…问题非常混淆。我们可以更好地理解。我使用的Secondviewcontroller是故事板,但不是xib..因此,如果我使用上面给出的代码,它会给出这个错误——“secondviewcontroller”没有可见的@接口声明选择器“initWithNibName:bundle:”请告诉我如何执行此操作好吗?您无法弹出回第二个场景,因为您从未导航到它。您可以使用self.navigationer pushViewController:SecondSceneVC转到第二个场景