2011-09-18 57 views
0

我使用pickerView didSelectRow将选定的值保存到NSUserDefaults并重新填充我的表格视图。但是,在操作表/选取器视图仍然可见的情况下,用户可以选择新值,并再次调用didSelectRow。Obj-C,在UIActionSheet中显示一个UIPickerView,但需要保存到NSUserDefaults并刷新表内容,但是在哪里?

编辑:澄清我不想填充我的表格视图在这一点上。

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

我能用什么?

这里是我的代码来显示操作表/选择器视图。

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

我这样做,但我没有得到UIPicker工具栏中的按钮。 – marciokoko

回答

0

如果正在驳回使用上面定义的OK按钮则可以使用该动作片委托方法actionSheet:willDismissWithButtonIndex:方法的动作片。如果您将选取器的选择存储在选取器视图委托方法中,那么在解除操作表时将其写入默认值,这应该覆盖您。

+0

存储在采摘代理方法? – Jules

+0

是的,同一个对象是选取器视图委托和操作表委托,所以当更新选取器视图时,将所选值放入伊娃,然后当表被解雇时,将该伊娃写入默认值。 – jrturton

相关问题