以编程方式展开segue

时间:2014-09-18 22:14:58

标签: ios objective-c segue

我似乎无法正确地做到这一点,所以我会尽力解释我能做到的最好。我有视图控制器1然后在视图控制器之一,然后我创建另一个视图基本上显示思想悬停在当前视图(让我们称之为2)。该视图现在有一个按钮,我需要返回查看0,这是它开始的地方。所以我创建了一个segue然后我尝试执行segue但是没有到达任何地方。 所以这就是我试图实现这一目标的方法。 在视图1中我有这个

// this is in the nearmeView controller
-(void)BackToStart{
[self performSegueWithIdentifier:@"unwind" sender:self];
//dismissViewControllerAnimated:completion:

 }

在弹出的视图中我有这个。

 NearMeViewController * goBackToBeggining = [[NearMeViewController alloc]init];
    [goBackToBeggining BackToStart];

然而我得到一个错误说明了这个?

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<NearMeViewController: 0x19af9600>) has no segue with identifier 'unwind''

现在我知道必须是我没有正确地设置视图我应该怎么做?我错过了什么? 我读过这篇文章,但它对任何想法都没有帮助吗? Unwind segue not being triggered

1 个答案:

答案 0 :(得分:2)

展开赛段很棘手。然而,对于这种情况,你甚至不需要一个;只需拨打BackToStart电话[self.navigationController popViewControllerAnimated:YES]即可。但是,如果您正在使用故事板并需要使用展开segue,则必须向目标视图控制器添加IBAction方法,并且必须采用UIStoryboardSegue参数:

- (IBAction)comeToPapa:(UIStoryboardSegue *)segue {
    // ... whatever
}

然后,在您的子视图控制器的故事板场景中,按住Ctrl键从任何触发器中展开并将其拖动到场景标题中的子视图控制器的绿色“退出”图标。这将弹出一个可用的展开segue列表;选择刚在父视图控制器中创建的那个。

Here's what Apple says about it.