我正在尝试从另一个viewcontroller调用一个方法,说已经初始化的HeyViewController。如何通过重新初始化该视图控制器的新实例来调用它的方法?
例如HeyViewController * hey = [[HeyViewController alloc] init]; [嘿showMe];
不好,因为它在初始化时初始化视图控制器。
所以是的,我该怎么做?
修改
对不起,目前还不清楚。由于应用程序使用故事板流动,所讨论的视图控制器已在此视图控制器之前初始化。因此viewcontroller正在运行,但该viewcontroller的实例不在当前视图控制器中。
答案 0 :(得分:1)
只需在您已经实例化的任何HeyViewController实例上调用showMe。
答案 1 :(得分:1)
您面临的问题是如何获得指向现有视图控制器的指针。为了回答这个问题,您需要考虑如何创建其他视图控制器。
您的视图控制器流量是多少?谁创造了你的"嘿"查看控制器?您的视图控制器是否需要访问"嘿"视图控制器可以访问创建"嘿"查看控制器?
如果答案是肯定的,那么让视图控制器创建"嘿"视图控制器在其中保存指向它的prepareForSegue方法。然后向创建视图控制器询问指向"嘿"在需要时查看控制器。
如果您的第三个视图控制器无法访问"嘿"的创建者。查看控制器,只会有一个你的"嘿"查看控制器?
如果你能确定你只有一个你的"嘿嘿"查看控制器,然后添加一个" currentHeyViewController"你的班级方法"嘿"查看控制器。添加私有全球" gCurrentHeyVC"到#34; Hey"的标题VC。返回currentHeyViewController类方法中的全局值。在init方法中设置global,在dealloc方法中为全局nil。
编辑:正如@gWiz在下面指出的那样,上面的最后一个选项是如何转动"嘿"将控制器视为单例。