From a39e525a3396a43e8968e702045ff124b3cbdbf9 Mon Sep 17 00:00:00 2001 From: Roman Efimov Date: Wed, 10 Apr 2013 10:22:05 -0500 Subject: [PATCH] Update APIs, remove actionBlock to clarify actions --- .../Cells/RETableViewBoolCell.m | 4 ++-- .../Cells/RETableViewFloatCell.m | 4 ++-- RETableViewManager/Items/REBoolItem.h | 5 +++-- RETableViewManager/Items/REBoolItem.m | 10 +++++----- RETableViewManager/Items/REFloatItem.h | 5 +++-- RETableViewManager/Items/REFloatItem.m | 10 +++++----- RETableViewManager/Items/RERadioItem.h | 4 ++-- RETableViewManager/Items/RERadioItem.m | 9 ++++----- RETableViewManager/RETableViewItem.h | 13 ++++++------- RETableViewManager/RETableViewItem.m | 19 +++++++++---------- RETableViewManager/RETableViewManager.m | 12 ++++++------ .../RETableViewOptionsController.m | 2 +- .../Controllers/ControlsViewController.m | 18 ++++++++++-------- .../Classes/Controllers/RootViewController.m | 4 ++-- 14 files changed, 60 insertions(+), 59 deletions(-) diff --git a/RETableViewManager/Cells/RETableViewBoolCell.m b/RETableViewManager/Cells/RETableViewBoolCell.m index db431a0..897f813 100644 --- a/RETableViewManager/Cells/RETableViewBoolCell.m +++ b/RETableViewManager/Cells/RETableViewBoolCell.m @@ -60,8 +60,8 @@ - (void)switchValueDidChange:(UISwitch *)switchView { self.item.value = switchView.isOn; - if (self.item.actionBlock) - self.item.actionBlock(self.item); + if (self.item.switchValueChangeHandler) + self.item.switchValueChangeHandler(self.item); } @end diff --git a/RETableViewManager/Cells/RETableViewFloatCell.m b/RETableViewManager/Cells/RETableViewFloatCell.m index 90787d4..03a3682 100644 --- a/RETableViewManager/Cells/RETableViewFloatCell.m +++ b/RETableViewManager/Cells/RETableViewFloatCell.m @@ -61,8 +61,8 @@ - (void)sliderValueDidChange:(UISlider *)slider { self.item.value = slider.value; - if (self.item.actionBlock) - self.item.actionBlock(self.item); + if (self.item.sliderValueChangeHandler) + self.item.sliderValueChangeHandler(self.item); } @end diff --git a/RETableViewManager/Items/REBoolItem.h b/RETableViewManager/Items/REBoolItem.h index 69450ae..97165c1 100644 --- a/RETableViewManager/Items/REBoolItem.h +++ b/RETableViewManager/Items/REBoolItem.h @@ -28,11 +28,12 @@ @interface REBoolItem : RETableViewItem @property (assign, readwrite, nonatomic) BOOL value; +@property (copy, readwrite, nonatomic) void (^switchValueChangeHandler)(REBoolItem *item); -+ (id)itemWithTitle:(NSString *)title value:(BOOL)value actionBlock:(void(^)(REBoolItem *item))actionBlock; ++ (id)itemWithTitle:(NSString *)title value:(BOOL)value switchValueChangeHandler:(void(^)(REBoolItem *item))switchValueChangeHandler; + (id)itemWithTitle:(NSString *)title value:(BOOL)value; -- (id)initWithTitle:(NSString *)title value:(BOOL)value actionBlock:(void(^)(REBoolItem *item))actionBlock; +- (id)initWithTitle:(NSString *)title value:(BOOL)value switchValueChangeHandler:(void(^)(REBoolItem *item))switchValueChangeHandler; - (id)initWithTitle:(NSString *)title value:(BOOL)value; @end diff --git a/RETableViewManager/Items/REBoolItem.m b/RETableViewManager/Items/REBoolItem.m index e868a55..a9919a3 100644 --- a/RETableViewManager/Items/REBoolItem.m +++ b/RETableViewManager/Items/REBoolItem.m @@ -32,17 +32,17 @@ return [[REBoolItem alloc] initWithTitle:title value:value]; } -+ (id)itemWithTitle:(NSString *)title value:(BOOL)value actionBlock:(void(^)(REBoolItem *item))actionBlock ++ (id)itemWithTitle:(NSString *)title value:(BOOL)value switchValueChangeHandler:(void(^)(REBoolItem *item))switchValueChangeHandler { - return [[REBoolItem alloc] initWithTitle:title value:value actionBlock:actionBlock]; + return [[REBoolItem alloc] initWithTitle:title value:value switchValueChangeHandler:switchValueChangeHandler]; } - (id)initWithTitle:(NSString *)title value:(BOOL)value { - return [self initWithTitle:title value:value actionBlock:nil]; + return [self initWithTitle:title value:value switchValueChangeHandler:nil]; } -- (id)initWithTitle:(NSString *)title value:(BOOL)value actionBlock:(void(^)(REBoolItem *item))actionBlock +- (id)initWithTitle:(NSString *)title value:(BOOL)value switchValueChangeHandler:(void(^)(REBoolItem *item))switchValueChangeHandler { self = [super init]; if (!self) @@ -50,7 +50,7 @@ self.title = title; self.value = value; - self.actionBlock = actionBlock; + self.switchValueChangeHandler = switchValueChangeHandler; return self; } diff --git a/RETableViewManager/Items/REFloatItem.h b/RETableViewManager/Items/REFloatItem.h index 73dba23..fbb1718 100644 --- a/RETableViewManager/Items/REFloatItem.h +++ b/RETableViewManager/Items/REFloatItem.h @@ -29,11 +29,12 @@ @property (assign, readwrite, nonatomic) float value; @property (assign, readwrite, nonatomic) CGFloat sliderWidth; +@property (copy, readwrite, nonatomic) void (^sliderValueChangeHandler)(REFloatItem *item); -+ (id)itemWithTitle:(NSString *)title value:(float)value actionBlock:(void(^)(REFloatItem *item))actionBlock; ++ (id)itemWithTitle:(NSString *)title value:(float)value sliderValueChangeHandler:(void(^)(REFloatItem *item))sliderValueChangeHandler; + (id)itemWithTitle:(NSString *)title value:(float)value; -- (id)initWithTitle:(NSString *)title value:(float)value actionBlock:(void(^)(REFloatItem *item))actionBlock; +- (id)initWithTitle:(NSString *)title value:(float)value sliderValueChangeHandler:(void(^)(REFloatItem *item))sliderValueChangeHandler; - (id)initWithTitle:(NSString *)title value:(float)value; @end diff --git a/RETableViewManager/Items/REFloatItem.m b/RETableViewManager/Items/REFloatItem.m index 59619ad..b3cef2b 100644 --- a/RETableViewManager/Items/REFloatItem.m +++ b/RETableViewManager/Items/REFloatItem.m @@ -32,17 +32,17 @@ return [[REFloatItem alloc] initWithTitle:title value:value]; } -+ (id)itemWithTitle:(NSString *)title value:(float)value actionBlock:(void(^)(REFloatItem *item))actionBlock ++ (id)itemWithTitle:(NSString *)title value:(float)value sliderValueChangeHandler:(void(^)(REFloatItem *item))sliderValueChangeHandler { - return [[REFloatItem alloc] initWithTitle:title value:value actionBlock:actionBlock]; + return [[REFloatItem alloc] initWithTitle:title value:value sliderValueChangeHandler:sliderValueChangeHandler]; } - (id)initWithTitle:(NSString *)title value:(float)value { - return [self initWithTitle:title value:value actionBlock:nil]; + return [self initWithTitle:title value:value sliderValueChangeHandler:nil]; } -- (id)initWithTitle:(NSString *)title value:(float)value actionBlock:(void(^)(REFloatItem *item))actionBlock +- (id)initWithTitle:(NSString *)title value:(float)value sliderValueChangeHandler:(void(^)(REFloatItem *item))sliderValueChangeHandler { self = [super init]; if (!self) @@ -50,7 +50,7 @@ self.title = title; self.value = value; - self.actionBlock = actionBlock; + self.sliderValueChangeHandler = sliderValueChangeHandler; self.sliderWidth = 140.0; return self; diff --git a/RETableViewManager/Items/RERadioItem.h b/RETableViewManager/Items/RERadioItem.h index d80a24a..90b6456 100644 --- a/RETableViewManager/Items/RERadioItem.h +++ b/RETableViewManager/Items/RERadioItem.h @@ -29,7 +29,7 @@ @property (copy, readwrite, nonatomic, getter = detailLabelText, setter = setDetailLabelText:) NSString *value; -+ (id)itemWithTitle:(NSString *)title value:(NSString *)value actionBlock:(void(^)(RERadioItem *item))actionBlock; -- (id)initWithTitle:(NSString *)title value:(NSString *)value actionBlock:(void(^)(RERadioItem *item))actionBlock; ++ (id)itemWithTitle:(NSString *)title value:(NSString *)value selectionHandler:(void(^)(RERadioItem *item))selectionHandler; +- (id)initWithTitle:(NSString *)title value:(NSString *)value selectionHandler:(void(^)(RERadioItem *item))selectionHandler; @end diff --git a/RETableViewManager/Items/RERadioItem.m b/RETableViewManager/Items/RERadioItem.m index e428bde..6260344 100644 --- a/RETableViewManager/Items/RERadioItem.m +++ b/RETableViewManager/Items/RERadioItem.m @@ -27,12 +27,12 @@ @implementation RERadioItem -+ (id)itemWithTitle:(NSString *)title value:(NSString *)value actionBlock:(void(^)(RERadioItem *item))actionBlock ++ (id)itemWithTitle:(NSString *)title value:(NSString *)value selectionHandler:(void(^)(RERadioItem *item))selectionHandler { - return [[RERadioItem alloc] initWithTitle:title value:value actionBlock:actionBlock]; + return [[RERadioItem alloc] initWithTitle:title value:value selectionHandler:selectionHandler]; } -- (id)initWithTitle:(NSString *)title value:(NSString *)value actionBlock:(void(^)(RERadioItem *item))actionBlock +- (id)initWithTitle:(NSString *)title value:(NSString *)value selectionHandler:(void(^)(RERadioItem *item))selectionHandler { self = [super init]; if (!self) @@ -40,8 +40,7 @@ self.title = title; self.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - self.actionBlock = actionBlock; - self.performActionOnSelection = YES; + self.selectionHandler = selectionHandler; self.value = value; self.cellStyle = UITableViewCellStyleValue1; diff --git a/RETableViewManager/RETableViewItem.h b/RETableViewManager/RETableViewItem.h index 2817490..acdd0af 100644 --- a/RETableViewManager/RETableViewItem.h +++ b/RETableViewManager/RETableViewItem.h @@ -33,20 +33,19 @@ @property (copy, readwrite, nonatomic) NSString *title; @property (assign, readwrite, nonatomic) NSTextAlignment textAlignment; @property (weak, readwrite, nonatomic) RETableViewSection *section; -@property (assign, readwrite, nonatomic) BOOL performActionOnSelection; @property (copy, readwrite, nonatomic) NSString *detailLabelText; @property (assign, readwrite, nonatomic) UITableViewCellStyle cellStyle; @property (assign, readwrite, nonatomic) UITableViewCellAccessoryType accessoryType; @property (strong, readwrite, nonatomic) UIView *accessoryView; -@property (copy, readwrite, nonatomic) void (^actionBlock)(id item); -@property (copy, readwrite, nonatomic) void (^accessoryButtonActionBlock)(id item); +@property (copy, readwrite, nonatomic) void (^selectionHandler)(id item); +@property (copy, readwrite, nonatomic) void (^accessoryButtonTapHandler)(id item); + (id)item; -+ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock; -+ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock accessoryButtonActionBlock:(void(^)(RETableViewItem *item))accessoryButtonActionBlock; ++ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler; ++ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler accessoryButtonTapHandler:(void(^)(RETableViewItem *item))accessoryButtonTapHandler; -- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock; -- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock accessoryButtonActionBlock:(void(^)(RETableViewItem *item))accessoryButtonActionBlock; +- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler; +- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler accessoryButtonTapHandler:(void(^)(RETableViewItem *item))accessoryButtonTapHandler; - (NSIndexPath *)indexPath; diff --git a/RETableViewManager/RETableViewItem.m b/RETableViewManager/RETableViewItem.m index 4168259..d132258 100644 --- a/RETableViewManager/RETableViewItem.m +++ b/RETableViewManager/RETableViewItem.m @@ -33,22 +33,22 @@ return [[self alloc] init]; } -+ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock ++ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler { - return [[self alloc] initWithTitle:title accessoryType:accessoryType actionBlock:actionBlock accessoryButtonActionBlock:nil]; + return [[self alloc] initWithTitle:title accessoryType:accessoryType selectionHandler:selectionHandler accessoryButtonTapHandler:nil]; } -+ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock accessoryButtonActionBlock:(void(^)(RETableViewItem *item))accessoryButtonActionBlock ++ (id)itemWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler accessoryButtonTapHandler:(void(^)(RETableViewItem *item))accessoryButtonTapHandler { - return [[self alloc] initWithTitle:title accessoryType:accessoryType actionBlock:actionBlock accessoryButtonActionBlock:accessoryButtonActionBlock]; + return [[self alloc] initWithTitle:title accessoryType:accessoryType selectionHandler:selectionHandler accessoryButtonTapHandler:accessoryButtonTapHandler]; } -- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock +- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler { - return [self initWithTitle:title accessoryType:accessoryType actionBlock:actionBlock accessoryButtonActionBlock:nil]; + return [self initWithTitle:title accessoryType:accessoryType selectionHandler:selectionHandler accessoryButtonTapHandler:nil]; } -- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType actionBlock:(void(^)(RETableViewItem *item))actionBlock accessoryButtonActionBlock:(void(^)(RETableViewItem *item))accessoryButtonActionBlock +- (id)initWithTitle:(NSString *)title accessoryType:(UITableViewCellAccessoryType)accessoryType selectionHandler:(void(^)(RETableViewItem *item))selectionHandler accessoryButtonTapHandler:(void(^)(RETableViewItem *item))accessoryButtonTapHandler { self = [super init]; if (!self) @@ -56,9 +56,8 @@ self.title = title; self.accessoryType = accessoryType; - self.actionBlock = actionBlock; - self.performActionOnSelection = YES; - self.accessoryButtonActionBlock = accessoryButtonActionBlock; + self.selectionHandler = selectionHandler; + self.accessoryButtonTapHandler = accessoryButtonTapHandler; return self; } diff --git a/RETableViewManager/RETableViewManager.m b/RETableViewManager/RETableViewManager.m index fb2ca2a..cb21d86 100644 --- a/RETableViewManager/RETableViewManager.m +++ b/RETableViewManager/RETableViewManager.m @@ -193,10 +193,10 @@ { RETableViewSection *section = [_sections objectAtIndex:indexPath.section]; id item = [section.items objectAtIndex:indexPath.row]; - if ([item respondsToSelector:@selector(setActionBlock:)]) { + if ([item respondsToSelector:@selector(setSelectionHandler:)]) { RETableViewItem *actionItem = (RETableViewItem *)item; - if (actionItem.actionBlock && actionItem.performActionOnSelection) - actionItem.actionBlock(item); + if (actionItem.selectionHandler) + actionItem.selectionHandler(item); } if ([_delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)]) @@ -210,10 +210,10 @@ { RETableViewSection *section = [_sections objectAtIndex:indexPath.section]; id item = [section.items objectAtIndex:indexPath.row]; - if ([item respondsToSelector:@selector(setActionBlock:)]) { + if ([item respondsToSelector:@selector(setAccessoryButtonTapHandler:)]) { RETableViewItem *actionItem = (RETableViewItem *)item; - if (actionItem.accessoryButtonActionBlock) - actionItem.accessoryButtonActionBlock(item); + if (actionItem.accessoryButtonTapHandler) + actionItem.accessoryButtonTapHandler(item); } if ([_delegate respondsToSelector:@selector(tableView:accessoryButtonTappedForRowWithIndexPath:)]) diff --git a/RETableViewManager/RETableViewOptionsController.m b/RETableViewManager/RETableViewOptionsController.m index df2ef60..d98f5cd 100644 --- a/RETableViewManager/RETableViewOptionsController.m +++ b/RETableViewManager/RETableViewOptionsController.m @@ -58,7 +58,7 @@ UITableViewCellAccessoryType accessoryType = UITableViewCellAccessoryNone; if ([title isEqualToString:self.item.detailLabelText]) accessoryType = UITableViewCellAccessoryCheckmark; - [_mainSection addItem:[RETableViewItem itemWithTitle:title accessoryType:accessoryType actionBlock:^(RETableViewItem *item) { + [_mainSection addItem:[RETableViewItem itemWithTitle:title accessoryType:accessoryType selectionHandler:^(RETableViewItem *item) { UITableViewCell *cell = [weakSelf.tableView cellForRowAtIndexPath:item.indexPath]; cell.accessoryType = UITableViewCellAccessoryCheckmark; [weakSelf.navigationController popViewControllerAnimated:YES]; diff --git a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m index ba693b5..3c6f021 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/ControlsViewController.m @@ -50,15 +50,17 @@ passwordItem.secureTextEntry = YES; [section addItem:passwordItem]; - [section addItem:[REBoolItem itemWithTitle:@"Bool item" value:YES]]; + [section addItem:[REBoolItem itemWithTitle:@"Bool item" value:YES switchValueChangeHandler:^(REBoolItem *item) { + NSLog(@"Value: %@", item.value ? @"YES" : @"NO"); + }]]; - [section addItem:[REFloatItem itemWithTitle:@"Float item" value:0.3 actionBlock:^(REFloatItem *item) { + [section addItem:[REFloatItem itemWithTitle:@"Float item" value:0.3 sliderValueChangeHandler:^(REFloatItem *item) { NSLog(@"Value: %f", item.value); }]]; [section addItem:[REDateTimeItem itemWithTitle:@"Date / Time" value:[NSDate date] format:@"MM/dd/yyyy hh:mm a" datePickerMode:UIDatePickerModeDateAndTime]]; - RERadioItem *optionItem = [RERadioItem itemWithTitle:@"Radio" value:@"Option 4" actionBlock:^(RERadioItem *item) { + RERadioItem *optionItem = [RERadioItem itemWithTitle:@"Radio" value:@"Option 4" selectionHandler:^(RERadioItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; // Generate sample options @@ -90,24 +92,24 @@ // Add items to this section // - [section2 addItem:[RETableViewItem itemWithTitle:@"Accessory 1" accessoryType:UITableViewCellAccessoryDisclosureIndicator actionBlock:^(RETableViewItem *item) { + [section2 addItem:[RETableViewItem itemWithTitle:@"Accessory 1" accessoryType:UITableViewCellAccessoryDisclosureIndicator selectionHandler:^(RETableViewItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; }]]; - [section2 addItem:[RETableViewItem itemWithTitle:@"Accessory 2" accessoryType:UITableViewCellAccessoryDetailDisclosureButton actionBlock:^(RETableViewItem *item) { + [section2 addItem:[RETableViewItem itemWithTitle:@"Accessory 2" accessoryType:UITableViewCellAccessoryDetailDisclosureButton selectionHandler:^(RETableViewItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; - } accessoryButtonActionBlock:^(RETableViewItem *item) { + } accessoryButtonTapHandler:^(RETableViewItem *item) { NSLog(@"Accessory button in accessoryItem2 was tapped"); }]]; - [section2 addItem:[RETableViewItem itemWithTitle:@"Accessory 2" accessoryType:UITableViewCellAccessoryCheckmark actionBlock:^(RETableViewItem *item) { + [section2 addItem:[RETableViewItem itemWithTitle:@"Accessory 2" accessoryType:UITableViewCellAccessoryCheckmark selectionHandler:^(RETableViewItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; }]]; RETableViewSection *section3 = [[RETableViewSection alloc] init]; [_manager addSection:section3]; - RETableViewItem *buttonItem = [RETableViewItem itemWithTitle:@"Test button" accessoryType:UITableViewCellAccessoryNone actionBlock:^(RETableViewItem *item) { + RETableViewItem *buttonItem = [RETableViewItem itemWithTitle:@"Test button" accessoryType:UITableViewCellAccessoryNone selectionHandler:^(RETableViewItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; NSLog(@"Button pressed"); }]; diff --git a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m index 6a188a8..3bfc891 100644 --- a/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m +++ b/RETableViewManagerExample/RETableViewManagerExample/Classes/Controllers/RootViewController.m @@ -37,12 +37,12 @@ RETableViewSection *section = [[RETableViewSection alloc] init]; [_manager addSection:section]; - [section addItem:[RETableViewItem itemWithTitle:@"Forms" accessoryType:UITableViewCellAccessoryDisclosureIndicator actionBlock:^(RETableViewItem *item) { + [section addItem:[RETableViewItem itemWithTitle:@"Forms" accessoryType:UITableViewCellAccessoryDisclosureIndicator selectionHandler:^(RETableViewItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; [weakSelf.navigationController pushViewController:[[ControlsViewController alloc] initWithStyle:UITableViewStyleGrouped] animated:YES]; }]]; - [section addItem:[RETableViewItem itemWithTitle:@"List" accessoryType:UITableViewCellAccessoryDisclosureIndicator actionBlock:^(RETableViewItem *item) { + [section addItem:[RETableViewItem itemWithTitle:@"List" accessoryType:UITableViewCellAccessoryDisclosureIndicator selectionHandler:^(RETableViewItem *item) { [weakSelf.tableView deselectRowAtIndexPath:item.indexPath animated:YES]; [weakSelf.navigationController pushViewController:[[ListViewController alloc] initWithStyle:UITableViewStylePlain] animated:YES]; }]];