2017-11-16 9 views
0

iMessage App을 개발하려고하는데 사용자 정의 셀의 값을 다른 뷰 컨트롤러로 전달하는 방법을 모르겠습니다. 일단 버튼을 누르면 셀의 값이 텍스트를 보내는 공간에 복사되는지 확인해야합니다. 제발 도와주세요! 임 여기에 붙어 : 누군가가 나를 도울 수 있다면iMessage에 전역 변수를 사용하여 하나의 사용자 정의 셀에서 다른보기 컨트롤러로 값을 전달하는 방법은 무엇입니까?

This is the iMessage Code and instead of "hello world" it needs to put the label text from the cell

 let layout = MSMessageTemplateLayout() 
     layout.caption = "Hello World" 

     let message = MSMessage() 
     message.layout = layout 

     self.activeConversation?.insert(message, completionHandler: nil) 

The part which has the details on the cell in a different view controller

 func configureWithContactEntry(_ contact: ContactEntry) { 
     contactNameLabel.text = contact.name 
     contactEmailLabel.text = contact.email ?? "" 
     contactPhoneLabel.text = contact.phone ?? "" 


     return cell 

This is the CellForRow code

let cell = tableView.dequeueReusableCell(withIdentifier: 
    "ContactTableViewCell", for: indexPath) as! ContactTableViewCell 
    let entry = filteredContacts[(indexPath as NSIndexPath).row] 
    cell.configureWithContactEntry(entry) 
    cell.layoutIfNeeded() 

    return cell 

좋은 것입니다!

+0

게시물의 코드를 편집하여 코드 그림에 대한 링크가 아닌 코드를 포함하십시오. – pbasdf

+0

@ pbasdf- 그래, 그렇게 할거야! 잠시만! –

+0

다른보기 컨트롤러로 전환 할 때 코드를 게시 할 수 있습니까? – Arrabidas92

답변

0

이렇게하면 imessage 확장에있는 다른 컨트롤러로 셀 데이터를 전달할 수 있습니다. 귀하의 경우이 기능에서 얻을해야합니다, 당신의 셀룰라 선택 오버라이드 기능을 모델 객체에서 indexPath의 기초에

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) { 
    print("cell selected at row \(indexPath.row)") 
} 

가져 오기 모델 데이터 등의 모양을 확인합니다.

let entry = filteredContacts[(indexPath as NSIndexPath).row] 
let name = entry.name 

그런 다음 Msession 개체를 만들고 항목 개체에서 데이터를 채 웁니다.

let session = MSSession() 
     let message = MSMessage(session: session) 
     let layout = MSMessageTemplateLayout() 
     layout.caption = name 


     message.layout = layout 

     //save the message in the current conversation context 

     self.savedConversation?.insert(message, 
             completionHandler: { (err) in 

             print("ERROR \(err.debugDescription)") 
     }) 

또한 메시지에 이미지를 추가하려면 다음과 같이하십시오.

 layout.image = UIImage(named:"image.png")! 
+0

어디로 가야합니까 ?? (NSIndexPath와 같은 indexPath) .row] let name = entry.name @Shauket Sheik –

+0

이 대체 된 메소드 didSelectRowAtIndexPath에서 레이아웃 후에 사용할 수 있습니다. –