diff --git a/quickdialog/QRootElement.h b/quickdialog/QRootElement.h index 0ad52a26..b0c38176 100644 --- a/quickdialog/QRootElement.h +++ b/quickdialog/QRootElement.h @@ -43,6 +43,9 @@ typedef enum { } @property(nonatomic, retain) NSString *title; +@property(nonatomic, retain) NSString *rightBarButtonTitle; +@property(nonatomic, copy) dispatch_block_t rightBarButtonAction; + @property(nonatomic, strong) NSMutableArray *sections; @property(nonatomic, strong) NSDictionary *sectionTemplate; @property(assign) BOOL grouped; diff --git a/quickdialog/QuickDialogController.m b/quickdialog/QuickDialogController.m index bd52af62..a7b18265 100644 --- a/quickdialog/QuickDialogController.m +++ b/quickdialog/QuickDialogController.m @@ -100,8 +100,15 @@ - (void)setRoot:(QRootElement *)root { self.quickDialogTableView.root = root; self.title = _root.title; self.navigationItem.title = _root.title; + if (root.rightBarButtonTitle) { + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:_root.rightBarButtonTitle style:UIBarButtonItemStylePlain target:self action:@selector(didSelectRightBarButtonItem)]; + } +} +-(void) didSelectRightBarButtonItem{ + if (_root.rightBarButtonAction) { + _root.rightBarButtonAction(); + } } - - (void)viewWillAppear:(BOOL)animated { _viewOnScreen = YES; [self.quickDialogTableView deselectRows]; @@ -109,6 +116,9 @@ - (void)viewWillAppear:(BOOL)animated { if (_root!=nil) { self.title = _root.title; self.navigationItem.title = _root.title; + if (_root.rightBarButtonTitle) { + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:_root.rightBarButtonTitle style:UIBarButtonItemStylePlain target:self action:@selector(didSelectRightBarButtonItem)]; + } if (_root.preselectedElementIndex !=nil) [self.quickDialogTableView scrollToRowAtIndexPath:_root.preselectedElementIndex atScrollPosition:UITableViewScrollPositionTop animated:NO]; diff --git a/sample/SampleDataBuilder.m b/sample/SampleDataBuilder.m index f0fe3e6f..799dee93 100644 --- a/sample/SampleDataBuilder.m +++ b/sample/SampleDataBuilder.m @@ -98,6 +98,11 @@ + (QRootElement *)createSampleFormRoot { QSection *subsection = [[QSection alloc] initWithTitle:@"SubSection"]; subForm.grouped = YES; subForm.title = @"Subform"; + subForm.rightBarButtonTitle = @"Click Here"; + subForm.rightBarButtonAction = ^{ + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:nil message:@"Example Right bar button action" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; + [alert show]; + }; subForm.controllerName = @"ExampleViewController"; [subsection addElement:[[QLabelElement alloc] initWithTitle:@"Some title" Value:@"Some value"]];