我正在尝试完成某项工作,但不确定执行此操作的最佳方法是什么。我正在通过蓝牙发送和接收数据,并且数据必须同时与多个视图共享,尽管一个视图将在任何时候处于 Activity 状态。虽然其他视图将不可见,但我需要它们接收通过蓝牙发送的数据,以保持适当的状态。
我认为UIPageViewController是正确的方法,但是在使用此模型时,尚不清楚所有视图控制器是否都将处于 Activity 状态并且可以正常工作。或者,我可以在UIPageViewController中维护ChildViewControllers的状态,并使它像数据源一样工作。
如果我没有使用正确的词汇,我深表歉意,但我仍在努力让我听到很多这样的东西。
最佳答案
您之前听说过MVC或Observer设计模式吗?
表示封装在模型中的数据状态,并在显示UIViewController后询问模型的当前状态,并在其中显示。
现在的问题是如何实施呢?
在上面的图片中,Door Object是从蓝牙接收到的数据,并且监听器或观察者是您视图的(即UIviewcontroller)
UIPageController会做这项工作吗?
是的,但不是您想要的方式。 UIpagecontroller使用视图控制器的延迟加载,即,仅在显示或将要显示时加载视图控制器。
这就是UIPageController的样子。它是带有子视图控制器的滚动视图。仅加载可见部分。因此,由用户加载的视图控制器将是唯一接收通知的控制器。您不希望强行加载所有它们,因为这不是有效的性能明智的选择。
建议的解决方案:使用NSNotifications并使每个UIView控制器注册到它,一旦从蓝牙获取数据,就将其发送到视图控制器。