UIViewController
とUIView
(コンポーネントとして)があります。以下はコンポーネントのコードです。カスタムコンポーネントのSwiftでのプロトコル指向プログラミング
class ProcessingProgressIndicator: UIView {
var progressView: UIProgressView!
func changeProgress(_ progress: Float) {
progressView.progress = progress
}
}
私はこのコンポーネントを複数のコントローラで使用します。ですから、進歩の価値を変える必要があるときは、自分のコントローラーで以下のように使用しました。
myProgressView.changeProgress(progress)
したがって、コンポーネント指向のコンポーネントを作成するために、私はコードに以下を追加しました。
protocol ProgressUpdateable {
func updateWith(progressView: ProcessingProgressIndicator,progress: Float)
}
extension ProgressUpdateable {
func updateWith(progressView: ProcessingProgressIndicator,progress: Float) {
// Method gets called and can change progress
}
}
は、だから私のコントローラから、私はこれは私がそれプロトコル指向作った方法です
updateWith(progressView: progressView,progress: progressData.progress)
以下のようにメソッドを呼び出します。
私の質問は次のとおりです。正しい実装方法ですか?
私はそれを取り除くことができますprogressViewのオブジェクトを渡す必要がありますか?
カスタムコンポーネントを作成し、プロトコルに準拠させてメソッドを呼び出す必要があります。混乱はどこですか? –
プロトコルに準拠させる方法を説明できますか? –
@parth Adrojaは、デリゲートに確認して、第1コントローラが第2コントローラを認識していることを確認してください。 –