Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AKPickerView保存选择_Ios_Uitableview_Tableview_Nsuserdefaults_Picker - Fatal编程技术网

Ios 使用AKPickerView保存选择

Ios 使用AKPickerView保存选择,ios,uitableview,tableview,nsuserdefaults,picker,Ios,Uitableview,Tableview,Nsuserdefaults,Picker,项目描述 我有一个左边的抽屉,里面有很多选择。其中之一是设置选项 设置选项中有一个表视图。我已经在一个牢房里埋了一个。AKPickerView让我可以选择用户希望在整个应用程序中使用的动画 但是,当选择动画并重新打开“设置”视图时,选择器会自动重置 下面是如何设置的 cellForRowAtIndexPath: //Animation Picker self.pickerView = [[AKPickerView alloc] initWithFr

项目描述

我有一个左边的抽屉,里面有很多选择。其中之一是设置选项

设置选项中有一个表视图。我已经在一个牢房里埋了一个。AKPickerView让我可以选择用户希望在整个应用程序中使用的动画

但是,当选择动画并重新打开“设置”视图时,选择器会自动重置

下面是如何设置的

cellForRowAtIndexPath:

            //Animation Picker
            self.pickerView = [[AKPickerView alloc] initWithFrame:cell.bounds];
            self.pickerView.delegate = self;
            self.pickerView.dataSource = self;
            self.pickerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
            [cell addSubview:self.pickerView];

            self.pickerView.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:20];
            self.pickerView.highlightedFont = [UIFont fontWithName:@"HelveticaNeue" size:20];
            self.pickerView.interitemSpacing = 25.0;
            self.pickerView.fisheyeFactor = 0.0002;
            self.pickerView.pickerViewStyle = AKPickerViewStyle3D;

            zoom = @"Zoom Out";
            drop = @"Drop In";
            push = @"Push";

            self.titles = @[zoom, drop, push];

            [self.pickerView reloadData];
[self.pickerView selectItem:[[NSUserDefaults standardUserDefaults] integerForKey:kAnimationTypeKey] animated:false];
计数、标题和选择:

- (NSUInteger)numberOfItemsInPickerView:(AKPickerView *)pickerView {
    return [self.titles count];
}

- (NSString *)pickerView:(AKPickerView *)pickerView titleForItem:(NSInteger)item {
    return self.titles[item];
}

- (void)pickerView:(AKPickerView *)pickerView didSelectItem:(NSInteger)item {

    if ([self.titles[item] isEqual:zoom]) {
        [[NSUserDefaults standardUserDefaults] setObject:@"Zoom Out" forKey:@"Zoom"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    else if ([self.titles[item] isEqual:drop]) {
        [[NSUserDefaults standardUserDefaults] setObject:@"Drop In" forKey:@"Drop"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    else if ([self.titles[item] isEqual:push]) {
        [[NSUserDefaults standardUserDefaults] setObject:@"Push" forKey:@"Push"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    NSLog(@"%@", self.titles[item]);
}
如何使选择器保存滚动位置或保存所选项目,使其在重新打开视图时保持不变


任何帮助都将不胜感激。

如果您希望在使用应用程序时数据保持静止,并且当您关闭应用程序时,数据将不再重要,则应使用persistence()。但是,如果您希望它保留(数据),无论您应该使用什么核心数据。

多亏了开发人员,我成功地使用了下面的代码:

我要做的是将其移动到viewDidLoad:

//Picker Titles
zoom = @"Zoom Out";
drop = @"Drop In";
push = @"Push";
self.titles = @[zoom, drop, push];
cellForRowAtIndexPath:

            //Animation Picker
            self.pickerView = [[AKPickerView alloc] initWithFrame:cell.bounds];
            self.pickerView.delegate = self;
            self.pickerView.dataSource = self;
            self.pickerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
            [cell addSubview:self.pickerView];

            self.pickerView.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:20];
            self.pickerView.highlightedFont = [UIFont fontWithName:@"HelveticaNeue" size:20];
            self.pickerView.interitemSpacing = 25.0;
            self.pickerView.fisheyeFactor = 0.0002;
            self.pickerView.pickerViewStyle = AKPickerViewStyle3D;

            zoom = @"Zoom Out";
            drop = @"Drop In";
            push = @"Push";

            self.titles = @[zoom, drop, push];

            [self.pickerView reloadData];
[self.pickerView selectItem:[[NSUserDefaults standardUserDefaults] integerForKey:kAnimationTypeKey] animated:false];
和(AKPickerView*)pickerView didSelectItem:

[[NSUserDefaults standardUserDefaults] setInteger:item forKey:kAnimationTypeKey];
这让我重新加载视图并保留所选项目…到目前为止:)

现在我只需要弄清楚如何正确地保存每个键的用户默认值