我有一个正在开发的应用程序,它有几个视图控制器,每个视图控制器都显示一个供用户执行的测试。目前,用户可以单独浏览每一个。但是,我正在尝试实现一个类似向导的功能,用户可以选择多个测试或所有测试,然后应用程序将遍历每个测试,将每个屏幕呈现给用户,并且一旦用户提交了输入,应用程序将按顺序移动到下一个测试。完成所有测试后,用户将返回主屏幕。从我读到的内容来看,NSNotifications 将是做到这一点的最佳方式,但老实说,我对此并不陌生,需要帮助。我意识到我应该在启动向导的方法中包含以下行:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(testChange:)
name:@"Test"
object:nil];
我也知道,一旦每个viewController运行完毕,就是通过以下方式发布通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"Test" object:self];
我的问题是,如果用户从表中选择了十个或二十个视图控制器,并且这些选择存储在一个数组中,我是否需要对 addObserver 方法进行尽可能多的调用,以及尽可能多的 postNotifications?我想做的只是简单地遍历每个视图控制器(由用户选择),一旦用户完成向该视图控制器提交输入,该视图控制器应该发送一条消息,用户应该转到下一个视图控制器,完成所有测试后,返回主屏幕。仅供参考,我需要调用每个 ViewController 的 (viewDidLoad) 方法。
如果我的问题令人困惑,我深表歉意。