2016-12-01 4 views
3

Я сделал пользовательский TableCell и добавил Tableview в UIViewController. Я хотел отправить данные с одного вида, который является UITableViewController, на UIViewController, в котором я применил tableView. Я получаю эту ошибку:Ошибка При отправке данных

error

+0

Опишите надлежащим образом. Я смущен тем, что вы говорите, и приложил другой код. –

+0

, как показано на рисунке выше, я получаю конкретную ошибку при отправке данных из одного представления в другой вид. Данные, которые я хочу отправить, относятся к типу данных NSArray. – Ronit

ответ

0

В вашей Storyboard ваш Segue подключен между UITableViewCell и ViewController из-за того, что вы получаете в качестве отправителя UITableViewCell. Чтобы решить эту проблему, просто удалите этот файл Segue и создайте его со своего источника ViewController по назначению ViewController и установите тот же идентификатор сегмента, после чего все будет работать так, как вы хотите.

+0

Я отправляю данные из UITableViewController в UIViewController Named BookingHistoryViewController. BookingHistoryViewController - это класс для UIView, в котором я добавил Table View, чтобы сделать CustomCells, и к этому CustomCell, который я использовал в программе CheckHistoryTableViewCell, вы можете видеть, что в методе prepareForSegue – Ronit

+0

@Ronit То, что я говорю, это то, что в раскадровке ваш segue подключен вместо TableCell и ViewController вместо этого вам нужно создать между двумя ViewControllers. –

+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) 
      } 
     } 

Пожалуйста, позвоните Затвор по в скором времени над процессом, т.е. передача данных обратно в view1 из view2 и определение закрытия, когда вы создали экземпляр view2, как только это было выше. Я даю только идею. Если вы хотите получить подробный код, пожалуйста, сообщите подробно о своем вопросе. Надеюсь, это поможет вам.

+0

Большое спасибо за вашу помощь. Можете ли вы рассказать мне, как добавить код, потому что stackOverFlow does'nt слишком много символов. – Ronit

+0

Вы можете добавить код, как вам понравилось в stackOverFlow. Если вы хотите пометить код, как я написал выше, сначала напишите код в поле ответа так, как вы писали, затем выберите код, который вы хотите пометить, и нажмите клавишу (Ctrl + K). Если мой ответ поможет вам, пожалуйста, проверьте мой ответ и верх. Если меня путают, спросите меня. спасибо –