2015-01-04 41 views
1

项目递减。保存选择使用AKPickerView

我有一个左抽屉与表选择与许多选项。其中之一是设置选项。

里面的设置选项是表视图。我已经嵌入AKPickerView一次的单元格内。 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]; 

计数,标题和didSelect:

- (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]); 
} 

我怎样才能让选择器保存的滚动位置或保存所选的项目,所以当我重新打开它停留的观点放?

任何帮助,将不胜感激。

回答

0

多亏了开发,我设法用下面的代码这方面的工作:

我有什么做的是推动这一到viewDidLoad中:

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

的cellForRowAtIndexPath:

[self.pickerView selectItem:[[NSUserDefaults standardUserDefaults] integerForKey:kAnimationTypeKey] animated:false]; 

和(AKPickerView *)pickerView didSelectItem:

[[NSUserDefaults standardUserDefaults] setInteger:item forKey:kAnimationTypeKey]; 

这让我去重新加载视图并保持选定的项目...到目前为止:)

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