2015-02-10 76 views
0

我试图执行一个shouldPerformSegueWithIdentifier并传递控制器之间的一些参数。传递控制器之间的参数与shouldPerformSegueWithIdentifier

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender { 

    if ([identifier isEqualToString:@"myid" ]) { 
     return NO; 

    } 

    mydestviewcontroller* my = [segue destinationviewcontroller]; 
    my.stringtopass= data; 



    return YES; 


} 
} 

我得到的[segue destinationviewcontroller] 而不是如果我使用赛格瑞它并不显示准备SEGUE错误。 我需要在segue发生之前执行一些检查,如果发生这种情况,我需要将参数传递给目标控制器。帮我出去!

+0

在哪里定义'segue'? – Larme 2015-02-10 11:12:04

+0

我不知道我只是使用ios的标准功能。 – tattiweb 2015-02-10 11:43:23

回答

2

传递控制器之间的一些参数用prepareForSegue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    if([segue.identifer isEqualToString:"myId"]) { 
     mydestviewcontroller* my = [segue destinationViewController]; 
     my.stringtopass= data; 

} 
+0

我需要执行检查,如果条件未验证没有发生继续,否则发生并且参数通过。 – tattiweb 2015-02-10 11:42:53

1

执行检查内部shouldPerformSegueWithIdentifier然后通过内部prepareForSegue的数据。 prepareForSegue只会在shouldPerformSegueWithIdentifier返回YES时才会执行。

+0

我一开始就试过这个,但是它并不妨碍检查采取行动时发生的继续 – tattiweb 2015-02-10 12:46:03

+0

你确定检查中没有错误吗?把NSLogs /断点,并检查什么是返回。 – ShahiM 2015-02-10 12:50:52

+0

嗨,对不起。在shouldperform中,我做了一个get请求并将获取的参数记忆在公共Nsstring中,然后在prepareforsegue中尝试传递参数时,它将变为null。 – tattiweb 2015-02-10 13:34:04