Please note, this blog entry is from a previous course. You might want to check out the current one.
The complete code of the mandatory tasks of assignment #5 can be found at github.
cs193p assignment solutions et al
for the iPhone-Application-Development Course from Stanford University et al
Please note, this blog entry is from a previous course. You might want to check out the current one.
The complete code of the mandatory tasks of assignment #5 can be found at github.
Please note, this blog entry is from a previous course. You might want to check out the current one.
You do not have to get this working on both platforms. Pick whichever of the two you want. It does, however, have to work on a real device, so pick the device you have the hardware for.
The code for the previous tasks has already incorporated both iPhone and iPad. In addition to the simulator the code has been tested on a first generation iPad.
Please note, this blog entry is from a previous course. You might want to check out the current one.
To make all this work, of course, you will need to add a Visit/Unvisit button to the scenes in the storyboard which show a photo. If that photo is already in “My Vacation,” then the button’s title should appear as “Unvisit,” otherwise it should appear as “Visit.” Clicking this button toggles whether the photo is part of “My Vacation” or not.
Add a new property which holds the “Visit/Unvisit” button and gets lazy initialized in its getter:
@property (nonatomic, strong) IBOutlet UIBarButtonItem *visitButton; @synthesize visitButton = _visitButton; - (UIBarButtonItem *)visitButton { if (!_visitButton) { _visitButton = [[UIBarButtonItem alloc] initWithTitle:@"Visit" style:UIBarButtonItemStyleBordered target:self action:@selector(visitButtonPressed:)]; } return _visitButton; }
Continue reading “Assignment #6 Task #7”
Please note, this blog entry is from a previous course. You might want to check out the current one.
All of the new tables in this application that show places or photos or tags must be driven by Core Data. It is your responsibility to determine the schema which best supports your needs.
This task is already fulfilled in the other tasks especially task #3 and task #4.
Please note, this blog entry is from a previous course. You might want to check out the current one.
You are not required to provide any UI for users to create new Virtual Vacations (see Extra Credit #1 if you want to), so simply create a single Virtual Vacation called “My Vacation” in the user’s Documents directory somewhere in your code. All “visits” and “unvisits” will happen in this “My Vacation” Virtual Vacation. However, just because you do not have to provide UI to create new vacations does not mean you are exempted from any other required tasks which support multiple Virtual Vacations (like Required Task #1). You may well want to create some other Virtual Vacations anyway just to verify that the rest of your code deals properly with multiple of them.
This task is already fulfilled in the other tasks by the functionality of the VacationHelper and tested using the debug database.
Please note, this blog entry is from a previous course. You might want to check out the current one.
The Tag Search tab must bring up a list of all the tags found in all the photos that the user has chosen to be a part of this Virtual Vacation (sorted with most-often-seen first). Touching on a tag brings up a list of all the photos in the Virtual Vacation that have that tag. The tags in a Flickr photo dictionary are contained in a single, space- separated, all lowercase string (accessible via the FLICKR_TAGS key). Separate out and capitalize each tag (not all caps, just capitalize the first letter) so that they look nicer in the UI. Don’t include any tags that have a colon in them.
In both storyboards add an additional table view controller as well as an subclass for it. Create a push segue from the tags cell from the vacation view controller to the new controller and from its cell a another push segue to the vacation-photos table view controller. Adjust the cell reuse identifier and set the identifiers for the two new segues.
Continue reading “Assignment #6 Task #4”
Please note, this blog entry is from a previous course. You might want to check out the current one.
The Itinerary tab must show a list of all the places where photos in the chosen Virtual Vacation have been taken (sorted with first-visited first). Clicking on a place will show all the photos in the Virtual Vacation taken in that place. The place name should be the one returned by getting the new FLICKR_PHOTO_PLACE_NAME key in the Flickr photo dictionaries you retrieve from the photosInPlace:maxResults: method. You will need to use the new FlickrFetcher code available with this assignment. Use only the place’s name (as returned the the FLICKR_PHOTO_PLACE_NAME key) to determine what the place is (i.e. ignore things like the Flickr place id).
In both storyboards add two additional table view controllers with two new subclasses. Set their cell types and reuse identifiers. The first one will be used for the places in the itinerary, the second one for its photos. Create a push segue from the itinerary cell of the vacation view controller to the first new table view controller, another push segue from its cell to the second new table view controller and – only for the iPhone storyboard – an additional segue from the cell of the second new table view controller to the photo view controller from the previous assignments. Name all segue identifiers accordingly.
Continue reading “Assignment #6 Task #3”