Ios 如何在每次选择新的选项卡栏项目时保存视图控制器数据?

Ios 如何在每次选择新的选项卡栏项目时保存视图控制器数据?,ios,objective-c,uiviewcontroller,uitabbarcontroller,Ios,Objective C,Uiviewcontroller,Uitabbarcontroller,我已经设置了一个选项卡栏来控制我的应用程序中的一些视图控制器。在我的视图控制器CheckViewController中,每次从CheckViewController切换到另一个视图控制器时,我都希望保存基于用户输入的数据。我当前使用的代码仅在我第一次使用选项卡栏从CheckViewController切换到另一个视图控制器时保存数据。每次打开CheckViewController并切换到另一个视图控制器时,我都希望保存数据 我目前正在使用: - (void)viewDidLoad { [

我已经设置了一个选项卡栏来控制我的应用程序中的一些视图控制器。在我的视图控制器CheckViewController中,每次从CheckViewController切换到另一个视图控制器时,我都希望保存基于用户输入的数据。我当前使用的代码仅在我第一次使用选项卡栏从CheckViewController切换到另一个视图控制器时保存数据。每次打开CheckViewController并切换到另一个视图控制器时,我都希望保存数据

我目前正在使用:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tabBarController.delegate = self;

    //code

}

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

    if (![viewController isEqual:self]) {

        if ([self.tabBarController.selectedViewController isEqual:self] ) {

            //save data

        }

    }

    return YES;

}

欢迎提出建议。谢谢

要保存小数据,可以使用NSUserDefault。 下面是一个保存和读取数据的示例

保存:

阅读:


您可以使用数据库包装器。只要在谷歌上搜索一下,我推荐AppCoda上的教程。我认为最好使用
ViewDidEnglish
ViewWillEnglish
而不是
tabBarController:shouldSelectViewController
[[NSUserDefaults standardUserDefaults] setObject:aData forKey:aKey];
[[NSUserDefaults standardUserDefaults] synchronize];
[[NSUserDefaults standardUserDefaults] objectForKey:aKey];