Ios 调用另一个已初始化的viewcontroller的方法

Ios 调用另一个已初始化的viewcontroller的方法,ios,objective-c,Ios,Objective C,我试图从另一个viewcontroller调用一个方法,比如说HeyViewController,它已经初始化。我如何通过重新初始化视图控制器的新实例来调用它的方法 e、 g HeyViewController*hey=[[HeyViewController alloc]init]; [嘿,秀我] 不好,因为这样会在视图控制器已初始化时初始化它 是的,我该怎么做 编辑: 对不起,不清楚。由于使用故事板的应用程序流,相关的viewcontroller已在此viewcontroller之前初始化。因

我试图从另一个viewcontroller调用一个方法,比如说HeyViewController,它已经初始化。我如何通过重新初始化视图控制器的新实例来调用它的方法

e、 g HeyViewController*hey=[[HeyViewController alloc]init]; [嘿,秀我]

不好,因为这样会在视图控制器已初始化时初始化它

是的,我该怎么做

编辑:


对不起,不清楚。由于使用故事板的应用程序流,相关的viewcontroller已在此viewcontroller之前初始化。因此,viewcontroller正在运行,但该viewcontroller的实例不在当前视图控制器中

只要在已实例化的HeyViewController的任何实例上调用showMe即可。

您面临的问题是如何获取指向现有视图控制器的指针。为了回答这个问题,您需要考虑如何创建另一个视图控制器

您的视图控制器流是什么?谁创建了“嘿”视图控制器?需要访问“嘿”视图控制器的视图控制器是否有权访问创建“嘿”视图控制器的视图控制器

如果答案是肯定的,那么让创建“Hey”视图控制器的视图控制器在其prepareforsgue方法中保存指向它的指针。然后要求创建视图控制器在需要时提供指向“Hey”视图控制器的指针

如果您的第三个视图控制器无权访问“Hey”视图控制器的创建者,那么“Hey”视图控制器是否只有一个实例

如果您可以确定您的“Hey”视图控制器只有一个实例,那么将“currentHeyViewController”类方法添加到“Hey”视图控制器。将专用全局“gCurrentHeyVC”添加到“Hey”VC的标题中。在currentHeyViewController类方法中返回全局值。在init方法中设置全局,在dealloc方法中设置nil全局


编辑:正如@gWiz在下面指出的,上面的最后一个选项是关于如何将“嘿”视图控制器转换为单例的快速描述。

对不起,我可能没有正确解释。当前视图控制器没有该视图控制器的实例。它已初始化,因为为了访问当前视图控制器,您通过了目标视图控制器。视图控制器“没有[其他]视图控制器的实例”。它们是否存在。问题是获取指向现有视图控制器的指针。如果您尝试访问的VC是您访问它的源VC的父VC,则您只需获取当前VC的
parentViewController
属性即可。如果没有,您可能需要从根控制器开始,遍历控制器层次结构以找到所需的控制器。看一看你的大致想法。你的最后一段是“如何做单身”问题的最快指南。+1