세 가지 컨테이너를 사용하여 다른 콘텐츠를 표시하는 앱을 만들려고하지만 컨테이너간에 통신하는 데 문제가 있습니다. 하나의 컨테이너에있는 버튼을 탭하여 다른 컨테이너로 정보를 보내기 위해 segue를 사용하는 데 성공했지만,이 정보의 일부는 세 번째 컨테이너로 전달되어야합니다. 이를 위해 저는 델리게이트를 사용하고 싶었지만 델리게이트 변수에 대한 올바른 ViewController를 참조 할 수는 없습니다. 다음과 같이컨테이너의 형제보기 컨트롤러간에 델리게이트 사용
그래서 내가 원하는 간다 :
- CollectionViewCell는
- TableVC 정보를 수신 TableVC에 SEGUE 트리거링, 도청 테이블을 업데이트 TableVC이 세 번째 VC에
- 셋째 VC를 기능을 위임 트리거 일부 정보 및 업데이트를 가져옵니다.
위의 내용에서 1을 얻을 수있었습니다. 2 작동,하지만 다음과 같이 내 프로토콜을 만들었습니다 3.
에 붙어있어 다음 TableVC에서
protocol PurchaseDelegate {
func addToTotalAmount(product : Product)
}
나는
var delegate : PurchaseDelegate? = nil
를 선언하고 IBAction를에 SEGUE에서 촉발 :
delegate?.addToTotalAmount(product)
class thirdVC:UIViewController,PurchaseDelegate {
func addToTotalAmount(product : Product) {
println("Adding....")
}
}
세 가지 용기는 일부 초기화를 수행하는 주요 VC 내에 다음과 같이
세 번째 VC에서 나는 대리자를 구현 응용 프로그램에있는 것들.
내 문제는, 내 tableVC 내 대리자 변수에 thirdVC에서 참조를 얻는 방법을 모르겠다.
미리 감사드립니다.
이 문제와 같은 소리는 대리인 패턴에 맞지 않습니다. 세 번째 viewController는 무엇을합니까? –
세 번째 viewController에는 콜렉션 뷰에서 테이블 뷰로 추가 된 제품에 따라 업데이트해야하는 총 가격의 레이블이 있습니다. 또한 지불/등록을 시작하기위한 버튼이 있습니다. – Simon
당신이하려는 것은 대리자 패턴에 맞지 않는 ViewControllers간에 데이터를 전달하는 것입니다. "보기 컨트롤러간에 데이터 전달"에 대한 검색을 수행하십시오 - 아마도 당신이 찾고있는 것입니다. –