簡體   English   中英

使用Storyboard Segue不調用iOS協議方法

[英]iOS Protocol Method Not Called with Storyboard Segue

我正在將一個數組從一個視圖控制器傳遞回另一個視圖控制器。

我正在使用協議和委托這樣做。

我面臨的問題是,如果我使用prepareForSegue方法,則不會調用委托方法。 但如果我創建一個自定義按鈕然后使用

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

回到視圖控制器,我正在將該數組傳遞給該方法。

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

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

假設您已在ViewController A中定義了委托屬性,並且您希望ViewController B充當A的委托。然后instanceOfViewControllerA.delegate = instanceOfViewControllerB.

在故事板中,假設您通過segue從A到B。

ViewControllerA類的prepareForSegue方法中,

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    ViewControllerB *instanceOfViewControllerB = segue.destinationViewController;
    self.delegate = instanceOfViewControllerB;
}
- (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];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM