From 1a40cffd6c755ec61b2391094c15df9cbc69613d Mon Sep 17 00:00:00 2001 From: "Eric D. Baker" Date: Wed, 6 Nov 2013 11:09:43 -0600 Subject: [PATCH 1/2] Set _indexSelectedBeforeDismissal property to prevent changing initially selected value when dismissing the picker without making a selection. --- BSModalPickerView/BSModalPickerView.m | 1 + 1 file changed, 1 insertion(+) diff --git a/BSModalPickerView/BSModalPickerView.m b/BSModalPickerView/BSModalPickerView.m index 716d46c..704215e 100644 --- a/BSModalPickerView/BSModalPickerView.m +++ b/BSModalPickerView/BSModalPickerView.m @@ -59,6 +59,7 @@ - (void)setValues:(NSArray *)values { - (void)setSelectedIndex:(NSUInteger)selectedIndex { if (_selectedIndex != selectedIndex) { _selectedIndex = selectedIndex; + _indexSelectedBeforeDismissal = selectedIndex; if (self.picker) { UIPickerView *pickerView = (UIPickerView *)self.picker; [pickerView selectRow:selectedIndex inComponent:0 animated:YES]; From 68198779981ab377756797de2e12fa7ed57c60df Mon Sep 17 00:00:00 2001 From: "Eric D. Baker" Date: Wed, 6 Nov 2013 11:42:43 -0600 Subject: [PATCH 2/2] Improve appearance for iOS 7. Plain toolbar. White picker view background. --- BSModalPickerView/BSModalPickerBase.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/BSModalPickerView/BSModalPickerBase.m b/BSModalPickerView/BSModalPickerBase.m index 453008e..988851d 100644 --- a/BSModalPickerView/BSModalPickerBase.m +++ b/BSModalPickerView/BSModalPickerBase.m @@ -42,6 +42,9 @@ - (UIView *)picker { _picker = [self pickerWithFrame:pickerFrame]; _picker.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; + if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) { + _picker.backgroundColor = [UIColor whiteColor]; + } } return _picker; @@ -64,7 +67,11 @@ - (NSArray *)additionalToolbarItems { - (UIToolbar *)toolbar { if (!_toolbar) { _toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, BSMODALPICKER_TOOLBAR_HEIGHT)]; - _toolbar.barStyle = UIBarStyleBlackTranslucent; + if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { + _toolbar.barStyle = UIBarStyleBlackTranslucent; + } else { + _toolbar.barStyle = UIBarButtonItemStylePlain; + } UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onCancel:)];