AppDelegate
Application delegate in method:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Customizes standard iPhone tabBar, while all navigation logic in implemented in MainStoryboard.storyboard file.
AboutViewController
This controller is the first one displayed when application launches. Image, title and text presented are created by reading from property list. Property list name is defined at top of main file:
#define kConfigPlistName @"config"
GalleryViewController
Layout of this view is built entirely by reading from property list. By arranging order in Gallery dictionary in property list you can rearange and edit subsections in Photos section. Property list name is defined at top of main file:
#define kConfigPlistName @"config"
By tapping on any of presented items following method is invoked:
- (IBAction)galleryItemPressed:(id)sender
Based on item type chosen item will be presented as large image or in case item is actually video file it will open video player with standard controls.
NewsViewController
This controller presents a table view whose data is downloaded by contacting your RSS server. Details about required RSS feed will be discussed later on.
On row select method:
- (void)tableView:(UITableView *)_tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
will open NewsItemViewController.
NewsItemViewController
This controller is used to display all details of menu item that was selected in it's parent (NewsViewController).
ReservationViewController
Reservation view displays a short description text, that is extracted from property list. Property list name is defined at top of main file:
#define kConfigPlistName @"config"
Underneath are four text fields in which user inputs information about his reservation. Button in Interface Builder is connected with following method that will take user to next screen (ReservationDetailViewController):
- (IBAction)buttonGetPriceClick:(id)sender
ReservationDetailViewController
Reservation detail view displays calculated price using parameters handed to it by it's parent view controller (ReservationViewController), and category prices that are read from property list. Property list name is defined at top of main file:
#define kConfigPlistName @"config"
Underneath the calculated price are four text fields in which user inputs his personal information. Button in Interface Builder is connected with following method that will present standard MFMailComposeViewController view, with prefilled recipient, subject and reservation data:
- (IBAction)reserveButtonClick:(id)sender
ContactsViewController
Contacts view is presented with contact information, map and two buttons. All presented data is read from property list, including map's location annotations. If allowed application will show user current location and after tapping on anotation's detail button Maps application will launch with directions to the hotel. Property list name is defined at top of main file:
#define kConfigPlistName @"config"
Methods linked from buttons in Interface Builder:
- (IBAction)buttonCallClick:(id)sender
- (IBAction)buttonEmailClick:(id)sender
Annotation
Definition of annotation used in LocationViewController, conforming to MKAnnotation protocol.
FeedDownloader
This class is used to download RSS feeds from your server. For NewsViewController to function properly you will need to edit following defines:
#define feedURL @"http://news.google.com/?output=rss"
#define feedObject @"item"
#define feedTitle @"title"
#define feedText @"text"
#define feedImageURL @"image"
#define feedBody @"link"
#define feedDate @"pubDate"
Please keep in mind that your defines must be the same as ones in response that this application will request from your server.