Ios 多个视图到一个视图,如何返回发件人

Ios 多个视图到一个视图,如何返回发件人,ios,xcode,view,segue,viewcontroller,Ios,Xcode,View,Segue,Viewcontroller,我正在将三个不同的视图连接到一个视图,并尝试创建一个返回按钮,返回到我来自的视图 例如: 视图A、B和C连接到视图D。如果我从B转到D,我想创建一个返回按钮,返回到B。如果我从C转到D,我希望该按钮返回到C,依此类推。我如何通过编程实现这一点 下面是一些代码: 在我们正在使用的发件人上 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToStri

我正在将三个不同的视图连接到一个视图,并尝试创建一个返回按钮,返回到我来自的视图

例如:

视图A、B和C连接到视图D。如果我从B转到D,我想创建一个返回按钮,返回到B。如果我从C转到D,我希望该按钮返回到C,依此类推。我如何通过编程实现这一点

下面是一些代码: 在我们正在使用的发件人上

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"SegueA"]) {
    ViewController *destViewController = segue.destinationViewController;
    destViewController.segueName = @"SegueA";
  }
}
在接收器端,我们使用以下代码:

- (IBAction)backBtn:(id)sender {
if([_segueName  isEqualToString: @"SegueA"]){
    [self performSegueWithIdentifier: @"SegueAA" sender:self];
}

因此,我们使用一个segue从a转到D,然后,如果识别出SegueA,我们希望通过一个segue从D返回一个称为SegueAA的SegueA。

您需要进行手动segue。您可以通过从一个视图切换到另一个视图,然后在界面生成器中为其命名来完成此操作

  • 控件从一个视图拖动到另一个视图
  • 在“手动”segue类型下,您可能希望使用push
  • 单击segue并转到properties,在“Identifier”字段下为其命名
  • 那么你可以这样称呼它:

    [self performSegueWithIdentifier:@"initalLegalSegue" sender:self];
    

(例如,此块将通过代码手动启动我的“initialLegalSegue”)

假设您使用的是
UIViewController
而不是
UIView
,则可以使用


[self.navigationController popViewControllerAnimated:YES]

对于模态分段,我一直在使用以下命令:

这可以追溯到一个视图控制器:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
这可以追溯到两个视图控制器:

[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

尝试为您已经完成的工作提供一些代码。另外,您是否直接使用
UIView
s在应用程序中进行导航,而不是使用
UIViewController
s?因为听起来,你应该使用视图控制器和导航控制器,但你在问题中没有提到它们。所有视图控制器都有导航控制器所有视图控制器都有属性
导航控制器
,但是,只有当它们包含在
UINavigationController
中时,才将其设置为某个值,但它们不一定是。好吧,如果您有UINavigationController,则只能使用segues。因此,在本例中设置该值。