开发者

Obj-C, showing a UIPickerView in an UIActionSheet, but need to save to NSUserDefaults and refresh table contents, but where?

开发者 https://www.devze.com 2023-04-06 05:41 出处:网络
I was using pickerView didSelectRow to save the selected value to NSUserDefaults and re populate my table view. However, at the point the action sheet / picker view is still visible and the user can s

I was using pickerView didSelectRow to save the selected value to NSUserDefaults and re populate my table view. However, at the point the action sheet / picker view is still visible and the user can select new values and didSelectRow will be called again.

EDIT: To clarify I don't want to populate my table view at this point.

I'm looking for an event when I can save the value and re-populate after the picker view is dismissed.

What can I use ?

Here's my code to show the action sheet / picker view.

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


If you are dismissing the action sheet using the OK button defined above then you can use the action sheet delegate method actionSheet:willDismissWithButtonIndex: method. If you store the picker's selection in the picker view delegate methods, then write it to defaults when the action sheet is dismissed, this should cover you.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号