gpt4 book ai didi

iphone - 如何将消息从一个对象发送到另一个对象?

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:16 26 4
gpt4 key购买 nike

我是目标编程的新手,很抱歉提出这个愚蠢的问题。我正在为某个社交网络做某种信使,我被困在一个非常简单的事情上 - 如何将消息从一个类的对象发送到另一个类的对象?

我有一个名为 SignInViewController 的类,它会在按下 SignUpButton 后创建一个 SignUpViewController 实例,它就是这样完成的:

SignUpViewController *signUpViewController = [[SignUpViewController alloc]init];
signUpViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:signUpViewController animated:YES];

然后,在使用 AFNetwork 完成一些管理之后(我为此使用了一个特定的类,称为 ServerManager),我想发送消息以在我的 SignUpViewController 实例中绘制一个新的文本字段,我认为可以这样做:

在 SignUpViewController.h 中:

- (void)showTheCodeTextField;

在 ServerManager.m 中:

[[SignUpViewController self] showTheCodeTextField];

然后在 SignUpViewController.m 中:

-(void)showTheCodeTextField
{
NSLog(@"Time to draw codeTextField");
}

我在后一行代码中得到了一个熟悉的 SIGABRT。我知道我做错了什么,但我就是想不通到底是什么。

你能帮帮我吗?

最佳答案

您可以使用 NSNotificationCenter 来完成这项工作。在呈现您的 SignUpController 之后,您将其添加为 ServerManager 发送的通知的观察者。当该通知到来时,您调用您的消息来绘制 View 。

所以,之后

SignUpViewController *signUpViewController = [[SignUpViewController alloc]init];
signUpViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:signUpViewController animated:YES];

做一个观察者

[[NSNotificationCenter defaultCenter]signUpViewController selector:@selector(showTheCodeTextField:) name:@"SignUpSucceded" object:[ServerManager sharedInstance]];

然后,在您的服务器管理器中,您发送一个包含该文本字段的通知,然后调用 SignUp 中的方法。就是这样。您的 notification.userinfo 中有文本字段文本

  [[NSNotificationCenter defaultCenter]postNotificationName:@"SignUpSucceded" object:self userInfo:[NSDictionary dictionaryWithObject:textField.text forKey:@"login"]];
}

在 signUpView 中获取游览文本

  -(void)showTheCodeTextField:(NSNotification*)notification
{
NSLog(@"Time to draw codeTextField %@",[notification userInfo]);
}

关于iphone - 如何将消息从一个对象发送到另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com