我的应用程序中有以下结构:
Custom View Controller
+- Custom View 1
+- Custom View 2
+- A number of UIControls
如果用户点击其中一个UIControl
,我想向自定义视图控制器发送消息。
目前,我可以看到两种解决方案:
UIControl
可以发送我的控制器观察到的NSNotification
(可能包含一些userInfo)。我倾向于选项2因为我不喜欢告诉Custom View 1关于我的控制器,所以它可以告诉Custom View 2它。
我的两种解决方案的优缺点是什么,还是有另一种方法可以做到这一点?
更新:我暂时使用NSNotification
。
答案 0 :(得分:1)
如何从应用代理中保留指向自定义视图控制器的指针,并将其作为属性公开。
然后,您可以使用UIApplication上的静态sharedApplication消息来访问您的应用委托和相应的属性:
// in custom view 2 code ...
YourApplication * app = (YourApplication*)[UIApplication sharedApplication];
CustomViewController * cvc = app.customViewController;
答案 1 :(得分:1)
有几种可能性,但最好的可能性取决于您的特定业务案例,以及多个嵌套UIView子类的用途。
tag
属性赋值,然后在设置目标操作事件时,使用viewWithTag:
从视图控制器访问它。