gpt4 book ai didi

iphone - 重新加载查看 iPhone

转载 作者:行者123 更新时间:2023-12-01 19:26:29 25 4
gpt4 key购买 nike

所以我有两个 View A和B。A是个人资料 View ,B是登录 View 。 A 在 ViewDidLoad 方法中使用

LoginViewController *lvc = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:[NSBundle mainBundle]]; //make new instance of LoginViewController
[self presentModalViewController:lvc animated:NO]; //present the LoginViewController
[lvc release];

在登录 View 中,如果登录成功,则移除该 View
[self dismissModalViewControllerAnimated:YES];

在登录 View 中,它会下载一些我想在配置文件 View 中显示的数据。我将如何将数据发送到配置文件 View 并将其显示在 xib 中。我相信配置文件 View 已经显示,但只是被隐藏了。

最佳答案

这是一个基本的“两个类(class)之间的交流”问题。有很多方法可以做到这一点,但这里有三种。我只为委托(delegate)编写了示例代码(因为我认为这可能是您情况下的最佳选择),但如果您需要通知或 KVO 的示例,请告诉我。

代表团 在 A 类中实现委托(delegate)或回调方法。委托(delegate)最适合小类层次结构。如果 A 类是唯一会加载 B 的类,而 A 是唯一关心 B 中发生的事情的类,那么委托(delegate)是移动数据的最简单方法。它易于实现,易于理解,并且类之间有明确的关系。

// Class A
- (void)displayLoginViewController {
LoginViewController *lvc = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:[NSBundle mainBundle]];
lvc.delegate = self;
[self presentModalViewController:lvc animated:NO]; //present the LoginViewController
[lvc release];
}

- (void)loginViewControllerWasSuccessfull:(LoginViewController *)loginViewController {
// Do whatever you need to do here
[self dismissModalViewControllerAnimated:YES];

}

在登录 View Controller 中,在标题中执行以下操作:
@property (assign) NSObject delegate; // declared assign so you don't have circular references

......这在实现中:
- (void)didLogin {
[self.delegate loginViewControllerWasSuccessfull:self];
}

通知 A 类将注册以监听登录通知。 B 类将发布登录通知。如果关心登录的类是分布式的,通知是最好的。也就是说,有许多类关心登录事件,它们可能不一定与执行登录的类有直接关系。

键值观察如果你不特别关心登录事件,KVO 是最好的,你关心数据的变化。您将拥有一些管理数据的类,可能是 NSManagedObject如果您使用的是核心数据。 A 类将观察其感兴趣的任何属性的变化。您的 LoginViewController完成下载数据后将更新该数据类。将通知 A 类数据已更改。

无论您决定使用哪种解决方案,最终的选择都归结为问“A 级关心什么?”。 A类需要知道B类成功登录吗?使用委托(delegate)。 A 类是否需要知道某个地方,某个类(class)已登录?使用通知。 A类不关心登录,它只需要知道数据是否发生了变化?使用 KVO。

关于iphone - 重新加载查看 iPhone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7228681/

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