2014-01-08 118 views
0

我將一個數組從一個視圖控制器傳遞迴另一個視圖控制器。iOS協議方法不會與故事板Segue一起調用

我正在使用協議和委託來做這件事。

我面臨的問題是如果我使用prepareForSegue方法,委託方法不會被調用。但是,如果我創建一個自定義按鈕,然後在回去的地方,我正經過該陣列的方法訪問視圖控制器使用

[self.navigationController pushViewController:bController animated:YES]; 

我該如何解決這個問題?即如果我將下面的代碼塊放到我的自定義下一個按鈕中,我如何識別該單詞segue(來自prepareFromSegue)?

if([segue.identifier isEqualToString:@"page2topage3"]){ ... } 
+0

嗨 - 是的這樣做了 – userMod2

回答

2

假設你定義的視圖控制器A中的委託財產,你想的ViewController B到充當委託給A. 然後instanceOfViewControllerA.delegate = instanceOfViewControllerB.

在故事板,可以說你是從A到B到Segue公司。

ViewControllerAprepareForSegue方法,

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    ViewControllerB *instanceOfViewControllerB = segue.destinationViewController; 
    self.delegate = instanceOfViewControllerB; 
} 
+1

真棒隊友 - 這是它!乾杯。我只需要添加instanceOfViewControllerB.self = delegate。 – userMod2

+0

歡呼聲和歡迎! –

0
- (IBAction)doneButtonClicked:(id)sender 
{ 
    [self performSegueWithIdentifier:kFromCardListToCardDetailViewControllerIdentifier sender:self]; 
} 

#pragma mark - segue methods 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:kFromCardListToCardDetailViewControllerIdentifier]) { 
     MyCardViewController *cardViewController = segue.destinationViewController; 
     cardViewController.card = self.cardArray[self.lastSelectedRow]; 
    } 
} 
相關問題