我需要在 iOS 应用程序工作时跨多个 View Controller 共享一些数据(例如用户 ID、当前密码等)(当然,对于离线密码存储,我将使用钥匙串(keychain))。在这种情况下最好的分享方式是什么?我是否应该创建一些单例对象(例如 UserInfo
)并从应用程序的所有部分访问其属性?这样做可以吗?
提前致谢。
最佳答案
如果在任何后端都找不到凭据等,我只需将它们存储在 NSUserDefaults
中,并将这些值设置为单例类中的属性。如果您使用的是像 Parse 这样的后端,那么您可以只使用它们的内置功能来处理这样的事情(即 PFUser)。
有些人喜欢将这些东西存储在 AppDelegate
中,但我不会这样做。我有一篇博文解释了为什么不 here.
此外,您始终可以使用 segues 来回传递数据,特别是在 prepareForSegue
内。有时这是有道理的,有时却没有道理,因为这些成员必须公开并暴露。看起来像这样:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"SEGUE_ID"])
{
DestinationViewController *dvc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
dvc.someMember = whatever
}
}
关于ios - 在 iOS 应用程序中跨多个 View Controller 共享某些数据的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27156709/