我刚创建了一个自定义的UIViewController,其中包含一些用户操作,如touch。我想在parentObject中处理用户交互。换句话说,就是创建ViewController的那个。
从其他语言我习惯使用推高的事件。所以我的父对象会对它可以作出反应的ViewController对象的引用有一些监听器。
Objective C如何处理这种类型的交互?
答案 0 :(得分:3)
这可以通过1)响应者链,2)通知和3)代表来完成。
所有UI对象构成响应者链,从当前聚焦的元素开始,然后是父视图等,通常直到应用程序对象。通过将动作发送到笔尖中的特殊First Responder对象,您将把它扔到响应者链中,直到有人处理它为止。您可以使用此机制触发事件,而无需知道谁和何时将处理它们。这与HTML事件模型类似。
NSNotificationCenter发送的通知可以由任意数量的侦听器接收。这是最接近于C#events。
委托是将事件发送到单个对象的最简单机制。该类声明名为delegate
的弱属性,该属性可以分配任何对象,以及该对象应该实现的协议。许多班级都使用这种方法;主要问题是你不能以这种方式拥有多个监听器。
答案 1 :(得分:0)
您应该查看两个viewControllers之间的交互的委托/委托。你需要先了解它是如何工作的。
答案 2 :(得分:0)
听起来你需要实现一个委托协议,它允许你的'子'视图控制器与它的'父'进行通信