用戶拖動鼠標(或手指?)的子視圖可以被視爲某種控件,因此您只需在該情況下使用目標/操作。或者可以是代表團。這樣你可以保持這個子視圖和視圖控制器鬆耦合,這也可以讓你在其他地方重用同一個類(子視圖是實例的)。因此,在授權的情況下:
定義一個協議:
@protocol ColorPickerViewDelegate
- (無效)colorPickerView:(ColorPickerView *)cpView didUpdateWithColor:(的UIColor *)newColor; @end
添加屬性@property(nonatomic, assign) id<ColorPickerViewDelegate> didUpdateDelegate;
上色採摘UIView子類。
使您的viewcontroller採用上述協議,並在viewcontroller的實現部分定義該協議的方法。
創建顏色選擇子視圖時,將您的viewcontroller設置爲該子視圖的didUpdateDelegate。
進行調用,以便在適當的時候在你的顏色採摘視圖觸摸操作邏輯didUpdateDelegate:[didUpdateDelegate colorPickerView:self didUpdateWithColor:someNewColor];
希望這是你想要的
感謝。因此,代表們避免了你必須理解層次,並且提供了一種方法來將代碼的一部分發送到另一部分的消息呢?所以你認爲這比控制器更好地通過引用將參數傳遞給子視圖(子視圖更新,然後控制器會看到),儘管我猜控制器在這種情況下仍然不知道它何時更改 – Greg
對不起,你在談什麼層次? – Russian