2016-12-01 13 views
3

私はカスタムTableCellを作成し、TableviewUIViewControllerに追加しました。私はUITableViewControllerという1つのビューからtableViewを実装したUIViewControllerにデータを送りたいと思っていました。私はこのエラーを取得しています:データの送信中にエラーが発生しました

error

+0

正しく記述してください。私はあなたが言っていることを混乱させ、他のコードも添付しています。 –

+0

上記の画像に示されているように、あるビューから別のビューにデータを送信する際に、特定のエラーが発生しています。送信したいデータはNSArrayデータ型です。 – Ronit

答えて

0

をであなたのStoryboardあなたのセグエはそのせいであなたがUITableViewCellとして送信者を得ているのUITableViewCellViewControllerの間に接続されています。この問題を解決するには、単にSegueを削除し、送信元ViewControllerから宛先ViewControllerに1つ作成し、すべて同じ方法で動作させると同じセグ識別子を設定します。

+0

私はUITableViewControllerからUIViewController Named BookingHistoryViewControllerにデータを送信しています。 BookingHistoryViewControllerはUIViewのクラスで、CustomCellを作成するためのTable Viewを追加しました。そのCustomCellにはBookingHistoryTableViewCellを使用しています。prepareForSegueメソッドで見ることができます – Ronit

+0

@Ronit私が言っていることは、あなたのsegueが接続されています2つのViewController間で作成する必要があるものではなく、tableCellとViewControllerを組み合わせて使用​​します。 –

+0

ありがとうございました – Ronit

0

質問はまだ明確ではありません。私はあなたにアイデアを与えていますが。 クロージャ、デリゲートまたは通知パターンを使用する必要があります。

私はview1 to view2からメッセージを送信しているとします。単純なプロセスを使用してデータを送信します。しかし、あなたはview2からVIEW1に送信した場合 - view2 、>閉鎖で: - >

var sendDataToBackController: ((String)->())? 

@IBAction func DataSendFrom2ndVCTo1stVC(_ sender: AnyObject) { 
      if let handler = sendDataToBackController{ 
       handler("Message From ViewController3 to ViewController2") 
       } 


      _ = self.navigationController?.popViewController(animated: true) 
     } 
    } 

view1のようにクロージャを定義します。 - >

if let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewController2") as? ViewController2{ 
       vc.dataFrom1StVC = "message send from 1st VC" 
        vc.sendDataToBackController = { 
       message in 
       print(message) 
       }     
       self.navigationController?.pushViewController(vc, animated: true) 
      } 
     } 

としてクロージャを呼んでください直ぐ上のプロセス、すなわち、view2からview1にデータを戻して、すぐ上にview2インスタンスを作成したクロージャを定義します。私は唯一のアイデアを与えている。詳細なコードを取得したい場合は、質問の詳細をお知らせください。 あなたのお役に立てば幸いです。

+0

stackOverFlowが多すぎる文字がないため、コードを追加する方法を教えていただけますか?ありがとうございました – Ronit

+0

あなたが好きなようにコードを追加できます。上記のようにコードをマークしたい場合は、まず、マークしたいコードを選択して(control + K)キーを押したように、まずアンサーボックスにコードを書いてください。私の答えがあなたを助けたら私の答えとupvoteをチェックしてください。混乱があれば、私に尋ねてください。ありがとうございました –

関連する問題