Skip to content

Instantly share code, notes, and snippets.

@jonsterling
Created March 28, 2010 20:01
Show Gist options
  • Save jonsterling/346990 to your computer and use it in GitHub Desktop.
Save jonsterling/346990 to your computer and use it in GitHub Desktop.
@interface RootViewController (Actions)
- (void)_goBack:sender;
- (void)_goForward:sender;
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
// ...
self.previousButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRewind
target:self
action:@selector(_goBack:)];
self.nextButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward
target:self
action:@selector(_goForward:)];
[self.previousButtonItem release];
[self.nextButtonItem release];
// ...
}
@end
@implementation RootViewController (Actions)
- (void)_goBack:sender {
self.date = [self.date dateByAddingDays:-1];
[self.tableView reloadData];
[self.statusView reload];
}
- (void)_goForward:sender {
self.date = [self.date dateByAddingDays:1];
[self.tableView reloadData];
[self.statusView reload];
}
@end
@interface RootViewController (Actions)
- (void)_changeDate:sender;
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
// ...
self.previousButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRewind
target:self
action:@selector(_changeDate:)];
self.nextButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward
target:self
action:@selector(_changeDate:)];
[self.previousButtonItem release];
[self.nextButtonItem release];
// ...
}
@end
@implementation RootViewController (Actions)
- (void)_changeDate:sender {
NSInteger delta = 0;
if ([sender isEqual:self.previousButtonItem]) {
delta = -1;
} else if ([sender isEqual:self.nextButtonItem]) {
delta = 1;
}
self.date = [self.date dateByAddingDays:delta];
[self.tableView reloadData];
[self.statusView reload];
}
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
// ...
self.previousButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRewind block:^() {
self.date = [self.date dateByAddingDays:-1];
[self.tableView reloadData];
[self.statusView reload];
}];
self.nextButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward block:^() {
self.date = [self.date dateByAddingDays:1];
[self.tableView reloadData];
[self.statusView reload];
}];
[self.previousButtonItem release];
[self.nextButtonItem release];
// ...
}
@end
typedef void (^JSVoidBlock)();
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
// ...
JSVoidBlock (^changeDateByDaysBlk)(int) = ^ JSVoidBlock (int days) {
return
[[^ {
self.date = [self.date dateByAddingDays:days];
[self.tableView reloadData];
[self.statusView reload];
} copy] autorelease];
};
self.previousButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRewind
block:changeDateByDaysBlk(-1)];
self.nextButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward
block:changeDateByDaysBlk(1)];
[self.previousButtonItem release];
[self.nextButtonItem release];
// ...
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment