我剛剛創建了一個自定義的UIViewController,其中包含一些用戶操作,如觸摸。我想處理parentObject中的用戶交互。換句話說就是創建ViewController的那個。向UIResponder鏈發送事件?
從其他語言我習慣使用推高的事件。所以我的父對象會對它可以作出反應的ViewController對象的引用有某種監聽器。
Objective C處理這種交互類型的方式是什麼?
我剛剛創建了一個自定義的UIViewController,其中包含一些用戶操作,如觸摸。我想處理parentObject中的用戶交互。換句話說就是創建ViewController的那個。向UIResponder鏈發送事件?
從其他語言我習慣使用推高的事件。所以我的父對象會對它可以作出反應的ViewController對象的引用有某種監聽器。
Objective C處理這種交互類型的方式是什麼?
你應該研究兩個viewControllers之間的交互委託/委託。你需要先了解它是如何工作的。
我喜歡你的想法! –
這可以通過1)響應鏈,2)通知和3)代表來完成。
所有UI對象形成響應鏈,從當前聚焦的元素開始,那麼它的父視圖等,通常直到應用程序對象。通過向您的筆尖中的特殊First Responder對象發送操作,您將把它放到響應者鏈中,直到有人處理它爲止。您可以使用此機制來觸發事件,而無需知道誰和何時處理它們。這與HTML事件模型類似。
通過NSNotificationCenter發送的通知可以被任意數量的監聽器接收。這是最接近的例如C#事件。
委託是向單個對象發送事件的最簡單機制。該類聲明名爲delegate
的弱屬性,可以爲任何對象和該對象應該實現的協議分配屬性。許多課程使用這種方法;主要問題是你不能有這樣一個以上的監聽器。
謝謝 - 我會看看 – mogio
這是iOS或OSX? :] – nacho4d
對不起... ios5 – mogio
Mac/IOS世界使用委託模式來處理這種類型的交互。你肯定會想看看。 – pdriegen