나는이 문제를 100 번 조사했지만 여전히 내 문제의 답을 찾을 수 없습니다. 나는 매우 간단한 프로토콜을 가지고 있지만 항상 nil
입니다. periodDelegate = self
을 추가하려고했지만 오류가 발생했습니다. Cannot assign value of type 'ScoreClockPopoverViewController' to type 'PeriodDelegate!'
다른 프로토콜을 사용하고 있습니다. 동일한 설정을 사용하고 정상적으로 작동합니다.스위프트 대리인 프로토콜이 없음
무엇이 누락 되었습니까?
미리 감사드립니다. 내가 호출 할 필요가
import UIKit
protocol PeriodDelegate {
func changePeriodButtonImage(selectedPeriod: Period)
}
class ScoreClockPopoverViewController: UIViewController {
//delegate
var periodDelegate: PeriodDelegate!
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad/periodDelegate \(String(describing: periodDelegate!))")
}
}
기능 모두의 UICollectionViewCell`
class HeaderCollectionViewCell: UICollectionViewCell {
override func awakeFromNib() {
super.awakeFromNib()
...
}
extension HeaderCollectionViewCell: PeriodDelegate {
func changePeriodButtonImage(selectedPeriod: Period) {
print("blah")
switch selectedPeriod {
case .first:
print("first")
case .second:
print("second")
case .third:
print("third")
case .overtime:
print("overtime")
case .shootout:
print("shootout")
}
}
}
위임자가 viewcontroller가 아닌 셀에 일치하도록하십시오. –
대리인을 클래스 전용으로 설정하고 약하게 만듭니다. – the4kman
UICollectionView 용 컨트롤러가 있습니까? – Michel