dropDown pod와 연결된 기본값이 nil
인 메인 viewController
에 하나의 버튼이 있습니다. 동일한 viewController
에는 컨테이너보기도 있습니다.동일한 값을 다른 값으로 컨테이너 뷰에 전달
처음로드하는 동안 공유 환경 설정에서 변수의 기본값을 가져 와서 해당 값을 performSegue
까지 컨테이너보기로 전달합니다.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if(segue.identifier == "dataToContainerView"){
DispatchQueue.main.async {
var secondVC = segue.destination as! secondViewController //container viewController
secondVC.variable = self.variable
}
}
}
은 이제 사용자에 의해 dropdown
버튼을 선택하여 다시 동일한 변수 값을 전달해야한다.
dropDown.selectionAction = { [unowned self] (index, item) in
self.button.setTitle(item, for: UIControlState())
self.variable = item
print(item)
self.performSegue(withIdentifier: "dataToContainerView", sender: nil)
//performing segue to resend the new value of the variable.
}
위의 코드는 print(item)
까지 올바르게 수행됩니다. 그러나 performSegue에서 다음 오류가 발생합니다.
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There are unexpected subviews in the container view. Perhaps the embed segue has already fired once or a subview was added programmatically?
가 어떻게 dropDown
포드의 도움으로 첫 번째 값을 오버라이드 (override) 컨테이너보기 두 번째로 값을 전달해야 ?
업데이트 : - 변수 viewController의 json 파서에 전달할 수 있도록 변수 값이 필요합니다. 그리고 container viewController의 코드가 다시 실행됩니다.
당신이 대표를 통해 전달할 수 있습니다. –
오류가 말한 것처럼 그렇게 할 수 없습니다. 해결책은 사용자 지정 클로저를 설정하거나 대리자를 사용하는 것입니다. – Larme
@DharmeshKheni 해결책을 찾기 위해 나를 안내하거나 코드를 알려주세요. – Error