Ios 通过一个示例将UIViewcontroller中声明的函数调用到AppDelegate

Ios 通过一个示例将UIViewcontroller中声明的函数调用到AppDelegate,ios,uiviewcontroller,appdelegate,Ios,Uiviewcontroller,Appdelegate,是否可以将UiviewController上的函数调用为appdelegate Im使用的Sdk包含一组自定义控制器和可以子类化的控制器 @interface FirstViewController : UIViewController @end 例如: 假设我们有2个ViewController和appdelegate viewController 1.h,它位于sdk中,可以子类化 @interface FirstViewController : UIViewCon

是否可以将UiviewController上的函数调用为appdelegate Im使用的Sdk包含一组自定义控制器和可以子类化的控制器

    @interface FirstViewController : UIViewController
    @end
例如:

假设我们有2个ViewController和appdelegate

viewController 1.h,它位于sdk中,可以子类化

    @interface FirstViewController : UIViewController
    @end
和第二视图控制器 哪个是firstViewController的子类 例:

在Appdelegate中,我导入SecondViewController 我的问题是 我如何可能使用函数[self-showChatForUserId:] 用户ID来自方法中appdelegate中的推送通知

  -(UIApplication)application didReceiveRemoteNotifications(NSDictionary *)userInfo
    {
      NSString userId = [userInfo valueForKey"uid"]; here comes the id which i can use in the showChatForUseId.
    }
如何通过在appdelegate和get中创建SecondViewController的实例来调用此函数

 [self ShowChatForUserID:userId];
在appDelegate.m的DidReceivereMotentifications方法中


感谢所有可能在这件事上提供帮助的人 这与当天早些时候提出的完全相同的问题有着可疑的相似之处

首先给出一些一般性的建议,坐下来几个小时,在你挣扎的时候阅读iOS书籍的前几章,即使从你的问题中得到了答案,你也会继续挣扎,不会放慢脚步,也不会得到一些基本的理解

现在

不是函数,函数为ShowChatForUserID:。你知道self是什么意思吗

在ShowChatForUserID之前,可以在SecondViewController的实例上调用 a) 调用DidReceivereMotentifications时必须已经存在该类型的对象,或者 b) 程序的某些部分必须创建一个

因此,某些对象必须以前创建过SecondViewController(SVC),或者现在某些对象必须创建一个

无法回答应该创建哪个对象,因为我们不知道应用程序的总体设计是什么,或者只提供信息就应该是什么

应用程序具有根视图控制器(RVC),根视图控制器可能是第二个ViewController,或者RVC可能创建SVC,或者RVC可能创建另一个VC,后者反过来应负责创建SVC,或者

应用程序代理应该发布一个通知(使用NSNotificationCenter)来通知推送已到达的某物,并将推送id发送给某物

如果SVC已经存在,那么它可能是SVC,或者它可能是RVC,或者它可能是另一个VC。 如果某个东西是SVC,那么它可以调用[self-ShowChatForUserID:userId]; 如果某个东西不是SVC,那么它可能会创建SVC并使用用户ID对其进行初始化

不可能说出什么应该是什么,因为答案取决于整个应用程序的设计和架构

这是正确的答案,如果这不是一个简单的好答案,您可以复制/粘贴到您的代码中,那么很抱歉让您失望。如果你不明白,那么不要在几个小时后再发布另一个问题,希望得到另一个你可以复制/粘贴的答案。请注意我在书的顶端所说的话

如果有人给了你一些你可以马上申请的快速的固定答案,他们的答案就是快速的胡说八道

(如果RVC是SVC,则应用程序代理可以直接调用该类上的方法来告诉它显示用户id的聊天记录,或者如果RVC不是SVC,则应用程序代理仍然可以告诉它将消息传递给SVC以显示聊天记录。但在真实的应用程序中,RVC不是SVC,并且RVC上被传递的应用程序委托调用方法不好)

 [self ShowChatForUserID:userId];
[self ShowChatForUserID:userId];