当子视图存在时,可以通过以下几种方式从mainViewController中获取数据:
- 使用代理模式:在mainViewController中定义一个代理协议,并在子视图中设置代理属性。当需要获取数据时,子视图通过代理方法向mainViewController请求数据,并将数据返回给子视图进行处理。
- 使用通知中心:在mainViewController中注册一个通知观察者,当需要获取数据时,子视图通过发送通知的方式将数据传递给mainViewController。mainViewController接收到通知后,可以获取传递的数据进行处理。
- 使用闭包(Block):在mainViewController中定义一个闭包属性,并在子视图中设置闭包回调函数。当需要获取数据时,子视图通过调用闭包回调函数将数据传递给mainViewController进行处理。
- 使用单例模式:在mainViewController中创建一个单例对象,在子视图中可以通过访问该单例对象获取数据。
- 使用KVO(键值观察):在mainViewController中监听子视图中数据的变化,当数据发生变化时,mainViewController可以获取到最新的数据。
需要根据具体的场景和需求选择合适的方式来获取数据。以上是一些常用的方法,具体选择哪种方式取决于项目的架构和设计。