2016-10-25 10 views
0

enter image description here 私はPopOverController(右)からデータビューコントローラ(左)を送信したいですが、どうすればいいですか?iOS Segue PopOverバックパスデータの方法

+0

http://stackoverflow.com/questions/7864371/how-to-pass-prepareforsegue-an-objectを使用する必要があります。 –

+0

しかし、私はpopoverControllerに送信しないデータ(左)に戻ってほしいです。 View Controllerを送信するpopoverController、私は[self dismissViewControllerAnimated:YES completion:nil]を使用します。 –

+0

これで、カスタムデリゲートを使用する必要があります。 –

答えて

0

prepareForSegueメソッドでデータを渡すことはできますが、最初にsegueの識別子を追加します。 そして、このコードを使用します。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
     if ([segue.identifier isEqualToString:@"showPopover"]) { 
      NSLog(@"FirstViewController: prepareForSegue"); 
      PopOverController * popoverVC = segue.destinationViewController; 
      popoverVC.myProperty = @"Data to be passed"; 
     } 
    } 
+0

私は[自己dismissViewControllerAnimated:はい完了:なし]を使用します。そのためprepareForSegueが動作しない –

+0

あなたが[self dismissViewControllerAnimated:YES completion:nil]を使用する場所。 ? –

+0

prepareForSegueメソッドは、あなたのケースのボタンを押すたびに呼び出されます。 あなたのコードを教えていただけますか? –

0

まずあなたが別のViewControllerのデータを取得するプロパティを1つ作ります。あなたの場合

我々は最初のViewControllerに文字列データが欲しいと仮定し、コールがあなたのケースで最初のViewControllerでセグエ方法の準備をした後、私たちは第二の1つの特性がPopOverController

@property (nonatomic, strong) NSString *recipeName; 

を意味作るのViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"IdentifierOfPushViewController"]) { 
     RecipeDetailViewController *destViewController = segue.destinationViewController; 
     destViewController.recipeName = @"Hello this passing data" 
    } 
} 
関連する問題