Slide 20
Slide 20 text
#import "MasterViewController.h"
#import "DetailViewController.h"
#import "Search.h"
#import "TextInputViewController.h"
@interface MasterViewController ()
@end
@implementation MasterViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.navigationItem.leftBarButtonItem = self.editButtonItem;
self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
}
- (void)viewWillAppear:(BOOL)animated {
self.clearsSelectionOnViewWillAppear = self.splitViewController.isCollapsed;
[super viewWillAppear:animated];
}
- (void)insertNewSearchTerm:(NSString *)searchTerm {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
Search *newSearch = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
newSearch.term = searchTerm;
newSearch.timeOfLastSearch = [[NSDate alloc] init];
newSearch.hasBeenSearched = NO;
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
#pragma mark - Segues
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { //...
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
Search *search = [[self fetchedResultsController] objectAtIndexPath:indexPath];
DetailViewController *controller = (DetailViewController *)[[segue destinationViewController] topViewController];
[controller setSearch: search];
controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
controller.navigationItem.leftItemsSupplementBackButton = YES;
} else if ([segue.identifier isEqualToString:@"showSearchInput"]){
TextInputViewController *textInputVC = segue.destinationViewController;
textInputVC.title = @"Search Term";
textInputVC.placeholderText = @"Enter search term";
textInputVC.cancel = ^{
[self dismissViewControllerAnimated:YES completion:nil];
};
textInputVC.save = ^(NSString *text){
[self insertNewSearchTerm:text];)tableView {
return [[self.fetchedResultsController sections] count];
}