我想要一些专家的 MVC 设计反馈:
我有一个带有 2 个选项卡的 UITabBarController,每个选项卡都通向一个带有 VC 堆栈的导航控制器。
第一个选项卡路径上的最后一个视图控制器将显示图像。我希望将该图像存储在表格中,并在选择第二个选项卡时随时查看。
如何将此图像从第一个选项卡-> NaVController->last VC (image VC) 发送到第二个选项卡-> NavController->table VC?
我有几个选择:
1- 在 tableVC 中创建一个类方法并让 imageVC 调用该类方法并将该图像直接保存到用户默认值中。这似乎违背了 MVC
2- 在 imageVC 中使用方法和委托属性创建协议,并让表 VC 采用该方法将图像保存在数组中。这里的问题是设置委托的唯一位置是在 ViewDidLoad 中:
[[[[self.tabBarController.viewControllers objectAtIndex:0] viewControllers] objectAtIndex:1] setDelegate:self];
这里的问题是,如果用户从一开始就选择第二个选项卡,应用程序将崩溃,因为很明显 viewControllers 还没有加载到第一个选项卡的导航堆栈上。同样,如果用户先看到 1 张图像,然后选择第二个选项卡,它将执行并设置委托,但不会保存第一个选择的图像。
必须有一个更简单的方法......
在此先感谢 KB