Objective c 关于可可接触中的单身问题

Objective c 关于可可接触中的单身问题,objective-c,ios,cocoa-touch,uigesturerecognizer,uiresponder,Objective C,Ios,Cocoa Touch,Uigesturerecognizer,Uiresponder,我对OOP和设计模式非常陌生,但我以前实现过一次Singleton模式,在不同的ViewController之间传递静态数组和字符串对象 我想知道是否有一种简单的方法可以让我所有的ViewController监听手势或事件,然后在所述手势/事件发生后执行一些代码。我正在考虑使用UIResponder类的uigesturecognizer对象或motionstart方法 通过创建一个新的UIWindow类,将代码放入其中,并将MainWindow.xib类更改为我的自定义类,我已经实现了这一点。这

我对OOP和设计模式非常陌生,但我以前实现过一次Singleton模式,在不同的ViewController之间传递静态数组和字符串对象

我想知道是否有一种简单的方法可以让我所有的ViewController监听手势或事件,然后在所述手势/事件发生后执行一些代码。我正在考虑使用
UIResponder
类的
uigesturecognizer
对象或
motionstart
方法

通过创建一个新的
UIWindow
类,将代码放入其中,并将
MainWindow.xib
类更改为我的自定义类,我已经实现了这一点。这很有效,是一个很好的解决方案,但我仍然想知道是否有一种非IB方式来实现这个解决方案(例如,单例)

提前感谢您的指导


非常感谢示例代码

您将UIWindow子类化了吗?这很少见。阅读有关UIApplication委托对象和委托模式的一般信息。它基本上是你的应用程序在Cocoa中的主要单例

如果你不想传递它,你可以通过调用

[[UIApplication sharedApplication] delegate]

如果您想让大量未连接的对象/控制器收到单个事件的通知,您可以随意触发它(来自控件或手势识别器的目标/动作)


您可能需要查看
NSNotificationCenter
NSNotification
,您可以列出多个对象以通知事件/更改。

您肯定不想对
UIWindow
进行子类化,甚至不想像初学者那样使用它,为窗口设置根控制器,然后使用itI完成。我将对此进行研究——我认为我想要做的是不可能的,除了将UIWindow子类化,或者干脆放弃此功能的实现。谢谢另一个想法:您应该阅读UIResponder和responder链:可能是一种有用的方法。这可以在不向现有应用程序添加太多代码的情况下完成吗?我编写了一个bug reporter,它是在一个震动事件中触发的,我将其存储在一个子类UIWindow对象中。我现在所做的就是在Interface Builder中建立一个连接,以访问这个新窗口,并且震动事件代码可用。我这样做是为了不费吹灰之力将代码恢复到非调试模式(将连接更改回UIWindow)。