0
私は委任を使用していますが、同じクラスを2つの異なる方法で使用しています。委任オブジェクトを識別する方法
protocol ColorSwitchDelegate {
func colorSwitched(picker: ColorSwitch, color: ColorChoice)
}
class ColorSwitch: UIView {
var delegate: ColorSwitchDelegate?
func doSomething() {
delegate?.colorSwitched(picker: self, color: color)
}
}
class SettingsViewController: UIViewController, ColorSwitchDelegate {
@IBOutlet weak var myView1: ColorSwitch!
@IBOutlet weak var myView2: ColorSwitch!
func viewWillAppear(_ animated: Bool) {
myView1.delegate = self
myView2.delegate = self
}
func colorSwitched(picker: ColorSwitch, color: ColorChoice) {
// I want to find out if myView1 or myView2 is the delegating object
}
}
どのビュー(myView1またはmyView2)が委任者であるかを識別したいと思います。私はColorSwitchクラスでタグを追加することができますが、これは控えめなようです。より良い方法がありますか?
は、ピッカーが== self.myView1 {}かどうかを確認できます。しかし、私はタグを追加すると最高だと思います。 – Sahil
申し訳ありません私は自分のコードを明確にしました。 myView1とmyView2の両方に、デリゲートがSettingsViewControllerに設定されています。だから私は無しをチェックすることはできません。 – Pete
'picker === myView1 {// 1で何かする} else if picker === myView2 {//何かで2}' – vacawama