2015-02-10 78 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