2016-11-03 4 views
1

데이터를 다음 viewController로 전달하는 것은 간단하고 간단하며 prepareSegue 메서드를 사용하여 수행 할 수 있습니다. 그러나 스위프트 (코코아 응용 프로그램)의 이전 viewController에 데이터를 전달하는 방법을 이해할 수 없습니다.Swift에서 이전 ViewController로 데이터를 전달하는 방법 (Cocoa Application)

텍스트 필드가 viewControllerB인데 거기에 내용을 입력하고 버튼을 누르면 해당 필드로 전달하려고합니다. 레이블이 viewControllerA이고 새 창에서 viewControllerA를 여는 대신 viewController B을 닫고 전달 된 데이터를 viewControllerA에 표시하고 싶습니다.

그게 전부입니다. 나는 지난 48 시간 동안 그것에 붙어 있었다. 이것에 대한 도움을 주시면 감사하겠습니다.

감사합니다!

+0

프로토콜/위임을 시도하셨습니까? –

+0

우리는 너무 긴장을 푸는 데 사용할 수 있습니다 –

답변

2

위임자를 사용하여이 작업을 수행합니다. 예 :

protocol NextProtocol: class { 
    func sendBack(value: Int) 
} 

class Previous: NextProtocol { 
    func sendBack(value: Int) { 
     print("I have received \(value)) 
    } 

    func prepareSegue(...) { 
     // get next instance 
     var next: Next 
     next.delegate = self 
    } 
} 

class Next { 
    weak var delegate: NextProtocol? 

    func someMethod() { 
     delegate?.sendBack(5) 
    } 
} 
+0

왜 혼란 스럽습니까? firstViewController 클래스에서 'prepareSegue'func를 사용하는 이유는 무엇입니까? –

+0

@ O.Naeem 데이터를 전달하는 것과 마찬가지로, 데이터 수신자를 전달합니다. 나는 당신이 데이터를 그곳으로 전달한다고 말했기 때문에 prepareSegue에 대해서 언급했다. – Sealos

+0

끝내 주셔서 감사합니다! 훌륭하게 작동! –