我需要在iOS应用程序中的多个视图控制器之间共享一些数据(例如用户ID,当前密码等),当它工作时(当然,对于离线密码存储我将使用钥匙串)。在这种情况下分享它的最佳方式是什么?我应该创建一些单独的对象,如UserInfo
,并从应用程序的所有部分访问其属性?这样做可以吗?
提前致谢。
答案 0 :(得分:1)
如果在任何后端都找不到凭据等,我只需将它们存储在NSUserDefaults
中,并将这些值设置为单例类中的属性。如果您使用像Parse这样的后端,那么您可以将它们的内置功能用于这样的东西(即PFUser)。
有些人喜欢将这些内容存储在AppDelegate
中,但我不会这样做。我有一篇博客文章解释了为什么不到here.
此外,您始终可以使用segue来回传递数据,特别是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
}
}