Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 通过不需要的viewcontroller将模型对象传递给viewcontroller_Ios_Objective C_Uiviewcontroller - Fatal编程技术网

Ios 通过不需要的viewcontroller将模型对象传递给viewcontroller

Ios 通过不需要的viewcontroller将模型对象传递给viewcontroller,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,关于将数据从视图控制器传递到相邻的视图控制器,有许多类似的问题 但是,对于在视图控制器中使用和初始化模型对象的情况,我还没有找到任何解决方案,然后是一个到另一个视图控制器的segue,该视图控制器没有使用该模型对象,然后另一个segue需要发生在需要使用该模型对象的视图控制器上。如何在向最后一个视图控制器公开模型对象的同时向中间视图控制器隐藏模型对象?您可以在app delegate中创建模型类的一个实例,然后仅在实际需要访问模型的VCs中通过AppDelegate.h引用它 你有几种选择 将对

关于将数据从视图控制器传递到相邻的视图控制器,有许多类似的问题


但是,对于在视图控制器中使用和初始化模型对象的情况,我还没有找到任何解决方案,然后是一个到另一个视图控制器的segue,该视图控制器没有使用该模型对象,然后另一个segue需要发生在需要使用该模型对象的视图控制器上。如何在向最后一个视图控制器公开模型对象的同时向中间视图控制器隐藏模型对象?

您可以在app delegate中创建模型类的一个实例,然后仅在实际需要访问模型的VCs中通过AppDelegate.h引用它

你有几种选择

将对象粘贴到中间人和目标共享的对象中。 使对象成为全局对象。可能使用单例模式或AppDelegate。
我希望避免像单例模式那样的全局可访问引用。我在考虑一种解决方案,即使用一些类似导航的控制器类,该类可以包含对所有模型的引用,并且在转换到新的视图控制器时,将模型传递给需要它的视图控制器——更像是模型引用传递的分层方法。第一种方法也是不可取的,因为它仍然没有限制对ModelsName响应和jlukanta响应的访问:我希望避免像单例模式这样的全局可访问引用。我在考虑一种解决方案,即使用一些类似导航的控制器类,该类可以包含对所有模型的引用,并在转换到新的视图控制器时,将模型传递给需要的视图控制器-更像是模型引用传递的分层方法。@corporate_fun:我想你刚刚回答了你自己的问题,但是一个只保存模型引用的单独控制器类与将这些单例引用放在AppDelegate中几乎相同。您仍然需要实例化类和模型引用,并且仍然需要将该类“.h”导入需要它的VCs。另外,您可以将模型引用封装在一个单独的位置,这样就不会使AppDelegate膨胀。就方法而言,这基本上仍是相同的解决方案。事实上您刚刚描述了jlukanta的选项1…我想知道是否有一种方法可以在每次视图控制器之间发生转换时获取回调,以便在出现新的视图控制器时通知对象,从而可以使用模型实例化视图控制器,而不是使用视图控制器访问对象以获取模型。