我正在开发一个带有多视图的iPhone应用程序(导航控制器),但我喜欢在用户触摸视图的任何视图时接收事件。我理解它可以通过子类化应用程序委托来完成吗?如果这是真的我怎么能这样做?我的要求是,我喜欢在用户触摸我的应用程序中的任何视图时立即收到活动。
感谢您的帮助和时间。
答案 0 :(得分:1)
您对subclassing UIApplication的引用将有效。阅读评论,它涵盖了一种有点古怪的IMO实现方式(通过让AppDelegate成为UIApplication的子类)。我自己,我会创建一个单独的类作为UIApplication子类,而不是让app委托做两个工作,但我看到了这两种方法的优点。
也就是说,这是一个非常大而且不寻常的棒,可能暗示设计失败。你用这个解决了什么问题?
答案 1 :(得分:0)
这样做的一种方法是使用一个Singleton类(作为观察者/中介者),应用程序就是一个例子,你可以让viewControllers在某个特定的触摸事件中被认可。视图。当触摸发生时,Singleton类被告知事件,结果它通知所有订户事件的事件。 这是一个例子
@interface MyEventClass
{
-(void)TouchEventDidOccur;
-(void)subscribeToTouchEvent:(id)delegate selector(selector):sel
}
以上是单身类
现在这是视图touchesBegan方法可能看起来像
的示例-(void)touchesBegan...
{
[[MyEventClass sharedInstance] TouchEventDidOccur];
}
以及如何订阅活动
[[MyEventClass sharedInstance] subscribeToTouchEvent:self selector:@selector(receiveTouchEvent:)]
希望这会有所帮助
答案 2 :(得分:0)
使用notifications有什么问题?如果您在应用程序中断开了类,那么让它们监听特定通知是微不足道的,然后让您的视图或视图控制器在触摸事件发生时发布该通知。所有观察员都将对通知采取行动。