Objective c Obj-C,在UIActionSheet中显示UIPickerView,但需要保存为NSUserDefaults并刷新表内容,但在哪里?

Objective c Obj-C,在UIActionSheet中显示UIPickerView,但需要保存为NSUserDefaults并刷新表内容,但在哪里?,objective-c,xcode,cocoa-touch,uipickerview,Objective C,Xcode,Cocoa Touch,Uipickerview,我正在使用pickerView didSelectRow将所选值保存到NSUserDefaults并重新填充我的表视图。但是,此时操作表/选择器视图仍然可见,用户可以选择新值,并再次调用didSelectRow 编辑:为了澄清这一点,我现在不想填充我的表视图 我正在寻找一个事件,当我可以保存值并在picker视图被取消后重新填充 我能用什么 下面是显示操作表/选择器视图的代码 - (IBAction)btnClicked:(id)sender { NSString *title = UIDevi

我正在使用
pickerView didSelectRow
将所选值保存到NSUserDefaults并重新填充我的表视图。但是,此时操作表/选择器视图仍然可见,用户可以选择新值,并再次调用didSelectRow

编辑:为了澄清这一点,我现在不想填充我的表视图

我正在寻找一个事件,当我可以保存值并在picker视图被取消后重新填充

我能用什么

下面是显示操作表/选择器视图的代码

- (IBAction)btnClicked:(id)sender {
NSString *title = UIDeviceOrientationIsLandscape([UIDevice currentDevice].
   orientation) ? @"\n\n\n\n\n\n\n\n\n" : @"\n\n\n\n\n\n\n\n\n\n\n\n" ;
UIActionSheet *actionSheet = [[[[UIActionSheet alloc] init] 
  initWithTitle:[NSString stringWithFormat:@"%@%@", 
  title, NSLocalizedString(@"Select the recurrence", @"")] delegate:self 
  cancelButtonTitle:nil destructiveButtonTitle:nil 
  otherButtonTitles:@"OK", nil] autorelease];

[actionSheet showInView:self.view];

UIPickerView *pickerView = [[[UIPickerView alloc] init] autorelease];

pickerView.showsSelectionIndicator = YES;
pickerView.dataSource = self;
pickerView.delegate = self;
[actionSheet addSubview:pickerView];
}

如果使用上面定义的“确定”按钮取消操作表,则可以使用操作表委托方法
actionSheet:willDismissWithButtonIndex:
方法。如果将选取器的选择存储在选取器视图委托方法中,然后在取消操作表时将其写入默认值,这应该涵盖您

是否存储在pickers委托方法中?是的,相同的对象是picker view委托和action sheet委托,因此在更新picker视图时,将选定的值放入ivar,然后当工作表被取消时,将该ivar写入默认值。我这样做了,但在UIPicker工具栏中没有按钮。