-
Notifications
You must be signed in to change notification settings - Fork 1
/
McKLocationSelectorViewController.m
107 lines (86 loc) · 3.73 KB
/
McKLocationSelectorViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//
// McKLocationSelector.m
// McKeenCenterApp
//
// Created by Evan Hoyt on 4/15/13.
// Copyright (c) 2013 Andrew Daniels and Evan Hoyt. All rights reserved.
//
/*
* This is the .m file for the second view controller of the Partnerships sections.
* Similar to the first it provides a picker to narrow your search.
*/
#import "McKLocationSelectorViewController.h"
#import "McKFileRetriever.h"
@interface McKLocationSelectorViewController ()
@end
@implementation McKLocationSelectorViewController
@synthesize locationsArray;
@synthesize location;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
// opens locations file from server and builds array.
- (void)viewDidLoad
{
[super viewDidLoad];
locationsArray = [[NSMutableArray alloc]init];
//contruct file location on server
NSString * serverDirectory = @"http://mobileapps.bowdoin.edu/hoyt_daniels_2013";
NSString * fileName = @"locations.txt";
NSString * fileOnServer = [serverDirectory stringByAppendingPathComponent:fileName];
//retrieve the file and get its path
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
NSString * path = [McKFileRetriever getDataFrom:fileOnServer forFile:fileName];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
//grab the contents of the file
NSString *content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
//parse locations from the file
NSArray *forDictionary = [content componentsSeparatedByString:@"\n"];
//add option for all locations to locations list
[locationsArray addObject:@"all locations"];
//add all locations to locations list
for (int i = 0; i < forDictionary.count; i++){
[locationsArray addObject:[forDictionary objectAtIndex:i]];
}
location = NULL;
}
//single component in picker view
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}
//set number of options in picker view
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [locationsArray count];
}
//returns location for an index in the picker view
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return [locationsArray objectAtIndex:row];
}
//set the location when it is selected
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
// NSLog(@"Selected service: %@.", [serviceIssuesArray objectAtIndex:row]);
location = [locationsArray objectAtIndex:row];
}
//called when table view is ready to push, sends it relevent information for what to display.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
McKPartnershipsTableViewController *tableDelegate;
//set options for displaying based on user selections
if ([segue.identifier isEqualToString:@"browse2"] || [segue.identifier isEqualToString:@"browse2Disclosure"]){
tableDelegate = (McKPartnershipsTableViewController*)segue.destinationViewController;
tableDelegate->specificLocation = location;
tableDelegate->specificSocialIssue = socialIssue;
} else if ([segue.identifier isEqualToString:@"browseAll2"] || [segue.identifier isEqualToString:@"browseAll2Disclosure"]){
tableDelegate = (McKPartnershipsTableViewController*)segue.destinationViewController;
tableDelegate->specificLocation = @" ";
tableDelegate->specificSocialIssue = @" ";
}
}
@end