├── .gitignore
├── DBSignup
├── en.lproj
│ ├── InfoPlist.strings
│ ├── RootViewController.xib
│ └── MainWindow.xib
├── male.png
├── female.png
├── background.png
├── background@2x.png
├── RootViewController.h
├── DBSignup-Prefix.pch
├── main.m
├── DBSignupAppDelegate.h
├── DBSignup-Info.plist
├── DBSignupAppDelegate.m
├── DBSignupViewController.h
├── RootViewController.m
├── DBSignupViewController.m
└── DBSignupViewController.xib
├── PSD
└── background.psd
├── DBSignup.xcodeproj
├── project.xcworkspace
│ └── contents.xcworkspacedata
├── xcuserdata
│ └── davide.xcuserdatad
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── DBSignup.xcscheme
└── project.pbxproj
├── README.mdown
└── LICENSE
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/DBSignup/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/DBSignup/male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidebettio/DBSignupViewController/HEAD/DBSignup/male.png
--------------------------------------------------------------------------------
/PSD/background.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidebettio/DBSignupViewController/HEAD/PSD/background.psd
--------------------------------------------------------------------------------
/DBSignup/female.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidebettio/DBSignupViewController/HEAD/DBSignup/female.png
--------------------------------------------------------------------------------
/DBSignup/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidebettio/DBSignupViewController/HEAD/DBSignup/background.png
--------------------------------------------------------------------------------
/DBSignup/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/davidebettio/DBSignupViewController/HEAD/DBSignup/background@2x.png
--------------------------------------------------------------------------------
/DBSignup.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.mdown:
--------------------------------------------------------------------------------
1 | DBSignupViewController provide a view controller for a complete signup like latest version of Foursquare app (3.2.1)
2 |
3 | [](https://s3-eu-west-1.amazonaws.com/public.davidebettio.com/DBSignupViewController1.png)
--------------------------------------------------------------------------------
/DBSignup/RootViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // RootViewController.h
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface RootViewController : UITableViewController {
12 |
13 | }
14 |
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/DBSignup/DBSignup-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'DBSignup' target in the 'DBSignup' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/DBSignup/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | [pool release];
16 | return retVal;
17 | }
18 |
--------------------------------------------------------------------------------
/DBSignup/DBSignupAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // DBSignupAppDelegate.h
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DBSignupAppDelegate : NSObject {
12 |
13 | }
14 |
15 | @property (nonatomic, retain) IBOutlet UIWindow *window;
16 | @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/DBSignup.xcodeproj/xcuserdata/davide.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | DBSignup.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 6B26FB1113C23F98000766DE
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/DBSignup/DBSignup-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | Davide-Bettio.${PRODUCT_NAME:rfc1034identifier}
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleShortVersionString
22 | 1.0
23 | CFBundleSignature
24 | ????
25 | CFBundleVersion
26 | 1.0
27 | LSRequiresIPhoneOS
28 |
29 | NSMainNibFile
30 | MainWindow
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | * Copyright (c) 2011, Davide Bettio
2 | * All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are met:
6 | * * Redistributions of source code must retain the above copyright
7 | * notice, this list of conditions and the following disclaimer.
8 | * * Redistributions in binary form must reproduce the above copyright
9 | * notice, this list of conditions and the following disclaimer in the
10 | * documentation and/or other materials provided with the distribution.
11 | * * Neither the name of the nor the
12 | * names of its contributors may be used to endorse or promote products
13 | * derived from this software without specific prior written permission.
14 | *
15 | * THIS SOFTWARE IS PROVIDED BY Davide Bettio ``AS IS'' AND ANY
16 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 | * DISCLAIMED. IN NO EVENT SHALL Davide Bettio BE LIABLE FOR ANY
19 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/DBSignup/DBSignupAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // DBSignupAppDelegate.m
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import "DBSignupAppDelegate.h"
10 |
11 | @implementation DBSignupAppDelegate
12 |
13 |
14 | @synthesize window=_window;
15 |
16 | @synthesize navigationController=_navigationController;
17 |
18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
19 | {
20 | // Override point for customization after application launch.
21 | // Add the navigation controller's view to the window and display.
22 | self.window.rootViewController = self.navigationController;
23 | [self.window makeKeyAndVisible];
24 | return YES;
25 | }
26 |
27 | - (void)applicationWillResignActive:(UIApplication *)application
28 | {
29 | /*
30 | Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
31 | Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
32 | */
33 | }
34 |
35 | - (void)applicationDidEnterBackground:(UIApplication *)application
36 | {
37 | /*
38 | Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
39 | If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
40 | */
41 | }
42 |
43 | - (void)applicationWillEnterForeground:(UIApplication *)application
44 | {
45 | /*
46 | Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
47 | */
48 | }
49 |
50 | - (void)applicationDidBecomeActive:(UIApplication *)application
51 | {
52 | /*
53 | Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
54 | */
55 | }
56 |
57 | - (void)applicationWillTerminate:(UIApplication *)application
58 | {
59 | /*
60 | Called when the application is about to terminate.
61 | Save data if appropriate.
62 | See also applicationDidEnterBackground:.
63 | */
64 | }
65 |
66 | - (void)dealloc
67 | {
68 | [_window release];
69 | [_navigationController release];
70 | [super dealloc];
71 | }
72 |
73 | @end
74 |
--------------------------------------------------------------------------------
/DBSignup/DBSignupViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DBSignupViewController.h
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DBSignupViewController : UIViewController {
12 | UITextField *nameTextField_;
13 | UITextField *lastNameTextField_;
14 | UITextField *emailTextField_;
15 | UITextField *passwordTextField_;
16 | UITextField *birthdayTextField_;
17 | UITextField *genderTextField_;
18 | UITextField *phoneTextField_;
19 | UIButton *photoButton_;
20 | UITextView *termsTextView_;
21 |
22 | UILabel *emailLabel_;
23 | UILabel *passwordLabel_;
24 | UILabel *birthdayLabel_;
25 | UILabel *genderLabel_;
26 | UILabel *phoneLabel_;
27 |
28 | UIToolbar *keyboardToolbar_;
29 | UIPickerView *genderPickerView_;
30 | UIDatePicker *birthdayDatePicker_;
31 |
32 | NSDate *birthday_;
33 | NSString *gender_;
34 | UIImage *photo_;
35 | }
36 |
37 | @property(nonatomic, retain) IBOutlet UITextField *nameTextField;
38 | @property(nonatomic, retain) IBOutlet UITextField *lastNameTextField;
39 | @property(nonatomic, retain) IBOutlet UITextField *emailTextField;
40 | @property(nonatomic, retain) IBOutlet UITextField *passwordTextField;
41 | @property(nonatomic, retain) IBOutlet UITextField *birthdayTextField;
42 | @property(nonatomic, retain) IBOutlet UITextField *genderTextField;
43 | @property(nonatomic, retain) IBOutlet UITextField *phoneTextField;
44 | @property(nonatomic, retain) IBOutlet UIButton *photoButton;
45 | @property(nonatomic, retain) IBOutlet UITextView *termsTextView;
46 |
47 | @property(nonatomic, retain) IBOutlet UILabel *emailLabel;
48 | @property(nonatomic, retain) IBOutlet UILabel *passwordLabel;
49 | @property(nonatomic, retain) IBOutlet UILabel *birthdayLabel;
50 | @property(nonatomic, retain) IBOutlet UILabel *genderLabel;
51 | @property(nonatomic, retain) IBOutlet UILabel *phoneLabel;
52 |
53 | @property(nonatomic, retain) UIToolbar *keyboardToolbar;
54 | @property(nonatomic, retain) UIPickerView *genderPickerView;
55 | @property(nonatomic, retain) UIDatePicker *birthdayDatePicker;
56 |
57 | @property(nonatomic, retain) NSDate *birthday;
58 | @property(nonatomic, retain) NSString *gender;
59 | @property(nonatomic, retain) UIImage *photo;
60 |
61 | - (IBAction)choosePhoto:(id)sender;
62 |
63 | - (void)resignKeyboard:(id)sender;
64 | - (void)previousField:(id)sender;
65 | - (void)nextField:(id)sender;
66 | - (id)getFirstResponder;
67 | - (void)animateView:(NSUInteger)tag;
68 | - (void)checkBarButton:(NSUInteger)tag;
69 | - (void)checkSpecialFields:(NSUInteger)tag;
70 | - (void)setBirthdayData;
71 | - (void)setGenderData;
72 | - (void)birthdayDatePickerChanged:(id)sender;
73 | - (void)signup:(id)sender;
74 | - (void)resetLabelsColors;
75 |
76 | + (UIColor *)labelNormalColor;
77 | + (UIColor *)labelSelectedColor;
78 | @end
79 |
--------------------------------------------------------------------------------
/DBSignup.xcodeproj/xcuserdata/davide.xcuserdatad/xcschemes/DBSignup.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
14 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
40 |
41 |
47 |
48 |
49 |
50 |
51 |
52 |
59 |
60 |
66 |
67 |
68 |
69 |
71 |
72 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/DBSignup/RootViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // RootViewController.m
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import "RootViewController.h"
10 | #import "DBSignupViewController.h"
11 |
12 | @implementation RootViewController
13 |
14 | - (void)viewDidLoad
15 | {
16 | [super viewDidLoad];
17 | self.title = @"Main";
18 | }
19 |
20 | - (void)viewWillAppear:(BOOL)animated
21 | {
22 | [super viewWillAppear:animated];
23 | }
24 |
25 | - (void)viewDidAppear:(BOOL)animated
26 | {
27 | [super viewDidAppear:animated];
28 | }
29 |
30 | - (void)viewWillDisappear:(BOOL)animated
31 | {
32 | [super viewWillDisappear:animated];
33 | }
34 |
35 | - (void)viewDidDisappear:(BOOL)animated
36 | {
37 | [super viewDidDisappear:animated];
38 | }
39 |
40 | /*
41 | // Override to allow orientations other than the default portrait orientation.
42 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
43 | // Return YES for supported orientations.
44 | return (interfaceOrientation == UIInterfaceOrientationPortrait);
45 | }
46 | */
47 |
48 | // Customize the number of sections in the table view.
49 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
50 | {
51 | return 1;
52 | }
53 |
54 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
55 | {
56 | return 1;
57 | }
58 |
59 | // Customize the appearance of table view cells.
60 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
61 | {
62 | static NSString *CellIdentifier = @"Cell";
63 |
64 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
65 | if (cell == nil) {
66 | cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
67 | cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
68 | }
69 |
70 | [cell.textLabel setText:@"Signup"];
71 |
72 | return cell;
73 | }
74 |
75 | /*
76 | // Override to support conditional editing of the table view.
77 | - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
78 | {
79 | // Return NO if you do not want the specified item to be editable.
80 | return YES;
81 | }
82 | */
83 |
84 | /*
85 | // Override to support editing the table view.
86 | - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
87 | {
88 | if (editingStyle == UITableViewCellEditingStyleDelete)
89 | {
90 | // Delete the row from the data source.
91 | [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
92 | }
93 | else if (editingStyle == UITableViewCellEditingStyleInsert)
94 | {
95 | // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
96 | }
97 | }
98 | */
99 |
100 | /*
101 | // Override to support rearranging the table view.
102 | - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
103 | {
104 | }
105 | */
106 |
107 | /*
108 | // Override to support conditional rearranging of the table view.
109 | - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
110 | {
111 | // Return NO if you do not want the item to be re-orderable.
112 | return YES;
113 | }
114 | */
115 |
116 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
117 | {
118 | DBSignupViewController *dbSignupViewController = [[DBSignupViewController alloc] initWithNibName:@"DBSignupViewController" bundle:nil];
119 | [self.navigationController pushViewController:dbSignupViewController animated:YES];
120 | [dbSignupViewController release];
121 | }
122 |
123 | - (void)didReceiveMemoryWarning
124 | {
125 | // Releases the view if it doesn't have a superview.
126 | [super didReceiveMemoryWarning];
127 |
128 | // Relinquish ownership any cached data, images, etc that aren't in use.
129 | }
130 |
131 | - (void)viewDidUnload
132 | {
133 | [super viewDidUnload];
134 |
135 | // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
136 | // For example: self.myOutlet = nil;
137 | }
138 |
139 | - (void)dealloc
140 | {
141 | [super dealloc];
142 | }
143 |
144 | @end
145 |
--------------------------------------------------------------------------------
/DBSignup.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 6B26FB1713C23F98000766DE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B26FB1613C23F98000766DE /* UIKit.framework */; };
11 | 6B26FB1913C23F98000766DE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B26FB1813C23F98000766DE /* Foundation.framework */; };
12 | 6B26FB1B13C23F98000766DE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B26FB1A13C23F98000766DE /* CoreGraphics.framework */; };
13 | 6B26FB2113C23F98000766DE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6B26FB1F13C23F98000766DE /* InfoPlist.strings */; };
14 | 6B26FB2413C23F98000766DE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B26FB2313C23F98000766DE /* main.m */; };
15 | 6B26FB2713C23F98000766DE /* DBSignupAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B26FB2613C23F98000766DE /* DBSignupAppDelegate.m */; };
16 | 6B26FB2A13C23F98000766DE /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6B26FB2813C23F98000766DE /* MainWindow.xib */; };
17 | 6B26FB2D13C23F98000766DE /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B26FB2C13C23F98000766DE /* RootViewController.m */; };
18 | 6B26FB3013C23F98000766DE /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6B26FB2E13C23F98000766DE /* RootViewController.xib */; };
19 | 6B41E3EF13C26BDE00A35DD6 /* male.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B41E3EC13C26BDE00A35DD6 /* male.png */; };
20 | 6B41E3F013C26BDE00A35DD6 /* female.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B41E3ED13C26BDE00A35DD6 /* female.png */; };
21 | 6B41E3F113C26BDE00A35DD6 /* background.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B41E3EE13C26BDE00A35DD6 /* background.png */; };
22 | 6B71DD7613C268DD00FD23B0 /* DBSignupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B71DD7413C268DD00FD23B0 /* DBSignupViewController.m */; };
23 | 6B71DD7713C268DD00FD23B0 /* DBSignupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6B71DD7513C268DD00FD23B0 /* DBSignupViewController.xib */; };
24 | 6B752F2813C75F910023D62C /* background@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6B752F2713C75F910023D62C /* background@2x.png */; };
25 | /* End PBXBuildFile section */
26 |
27 | /* Begin PBXFileReference section */
28 | 6B26FB1213C23F98000766DE /* DBSignup.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DBSignup.app; sourceTree = BUILT_PRODUCTS_DIR; };
29 | 6B26FB1613C23F98000766DE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
30 | 6B26FB1813C23F98000766DE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
31 | 6B26FB1A13C23F98000766DE /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
32 | 6B26FB1E13C23F98000766DE /* DBSignup-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "DBSignup-Info.plist"; sourceTree = ""; };
33 | 6B26FB2013C23F98000766DE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
34 | 6B26FB2213C23F98000766DE /* DBSignup-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DBSignup-Prefix.pch"; sourceTree = ""; };
35 | 6B26FB2313C23F98000766DE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
36 | 6B26FB2513C23F98000766DE /* DBSignupAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBSignupAppDelegate.h; sourceTree = ""; };
37 | 6B26FB2613C23F98000766DE /* DBSignupAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DBSignupAppDelegate.m; sourceTree = ""; };
38 | 6B26FB2913C23F98000766DE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; };
39 | 6B26FB2B13C23F98000766DE /* RootViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RootViewController.h; sourceTree = ""; };
40 | 6B26FB2C13C23F98000766DE /* RootViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RootViewController.m; sourceTree = ""; };
41 | 6B26FB2F13C23F98000766DE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/RootViewController.xib; sourceTree = ""; };
42 | 6B41E3EC13C26BDE00A35DD6 /* male.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = male.png; sourceTree = ""; };
43 | 6B41E3ED13C26BDE00A35DD6 /* female.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = female.png; sourceTree = ""; };
44 | 6B41E3EE13C26BDE00A35DD6 /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = ""; };
45 | 6B71DD7313C268DD00FD23B0 /* DBSignupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBSignupViewController.h; sourceTree = ""; };
46 | 6B71DD7413C268DD00FD23B0 /* DBSignupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBSignupViewController.m; sourceTree = ""; };
47 | 6B71DD7513C268DD00FD23B0 /* DBSignupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DBSignupViewController.xib; sourceTree = ""; };
48 | 6B752F2713C75F910023D62C /* background@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "background@2x.png"; sourceTree = ""; };
49 | /* End PBXFileReference section */
50 |
51 | /* Begin PBXFrameworksBuildPhase section */
52 | 6B26FB0F13C23F98000766DE /* Frameworks */ = {
53 | isa = PBXFrameworksBuildPhase;
54 | buildActionMask = 2147483647;
55 | files = (
56 | 6B26FB1713C23F98000766DE /* UIKit.framework in Frameworks */,
57 | 6B26FB1913C23F98000766DE /* Foundation.framework in Frameworks */,
58 | 6B26FB1B13C23F98000766DE /* CoreGraphics.framework in Frameworks */,
59 | );
60 | runOnlyForDeploymentPostprocessing = 0;
61 | };
62 | /* End PBXFrameworksBuildPhase section */
63 |
64 | /* Begin PBXGroup section */
65 | 6B26FB0713C23F97000766DE = {
66 | isa = PBXGroup;
67 | children = (
68 | 6B26FB1C13C23F98000766DE /* DBSignup */,
69 | 6B26FB1513C23F98000766DE /* Frameworks */,
70 | 6B26FB1313C23F98000766DE /* Products */,
71 | );
72 | sourceTree = "";
73 | };
74 | 6B26FB1313C23F98000766DE /* Products */ = {
75 | isa = PBXGroup;
76 | children = (
77 | 6B26FB1213C23F98000766DE /* DBSignup.app */,
78 | );
79 | name = Products;
80 | sourceTree = "";
81 | };
82 | 6B26FB1513C23F98000766DE /* Frameworks */ = {
83 | isa = PBXGroup;
84 | children = (
85 | 6B26FB1613C23F98000766DE /* UIKit.framework */,
86 | 6B26FB1813C23F98000766DE /* Foundation.framework */,
87 | 6B26FB1A13C23F98000766DE /* CoreGraphics.framework */,
88 | );
89 | name = Frameworks;
90 | sourceTree = "";
91 | };
92 | 6B26FB1C13C23F98000766DE /* DBSignup */ = {
93 | isa = PBXGroup;
94 | children = (
95 | 6B41E3F313C26BF400A35DD6 /* Images */,
96 | 6B71DD8913C26B8900FD23B0 /* Views */,
97 | 6B71DD7313C268DD00FD23B0 /* DBSignupViewController.h */,
98 | 6B71DD7413C268DD00FD23B0 /* DBSignupViewController.m */,
99 | 6B26FB2513C23F98000766DE /* DBSignupAppDelegate.h */,
100 | 6B26FB2613C23F98000766DE /* DBSignupAppDelegate.m */,
101 | 6B26FB2B13C23F98000766DE /* RootViewController.h */,
102 | 6B26FB2C13C23F98000766DE /* RootViewController.m */,
103 | 6B26FB1D13C23F98000766DE /* Supporting Files */,
104 | );
105 | path = DBSignup;
106 | sourceTree = "";
107 | };
108 | 6B26FB1D13C23F98000766DE /* Supporting Files */ = {
109 | isa = PBXGroup;
110 | children = (
111 | 6B26FB1E13C23F98000766DE /* DBSignup-Info.plist */,
112 | 6B26FB1F13C23F98000766DE /* InfoPlist.strings */,
113 | 6B26FB2213C23F98000766DE /* DBSignup-Prefix.pch */,
114 | 6B26FB2313C23F98000766DE /* main.m */,
115 | );
116 | name = "Supporting Files";
117 | sourceTree = "";
118 | };
119 | 6B41E3F313C26BF400A35DD6 /* Images */ = {
120 | isa = PBXGroup;
121 | children = (
122 | 6B41E3EE13C26BDE00A35DD6 /* background.png */,
123 | 6B752F2713C75F910023D62C /* background@2x.png */,
124 | 6B41E3EC13C26BDE00A35DD6 /* male.png */,
125 | 6B41E3ED13C26BDE00A35DD6 /* female.png */,
126 | );
127 | name = Images;
128 | sourceTree = "";
129 | };
130 | 6B71DD8913C26B8900FD23B0 /* Views */ = {
131 | isa = PBXGroup;
132 | children = (
133 | 6B71DD7513C268DD00FD23B0 /* DBSignupViewController.xib */,
134 | 6B26FB2813C23F98000766DE /* MainWindow.xib */,
135 | 6B26FB2E13C23F98000766DE /* RootViewController.xib */,
136 | );
137 | name = Views;
138 | sourceTree = "";
139 | };
140 | /* End PBXGroup section */
141 |
142 | /* Begin PBXNativeTarget section */
143 | 6B26FB1113C23F98000766DE /* DBSignup */ = {
144 | isa = PBXNativeTarget;
145 | buildConfigurationList = 6B26FB3313C23F98000766DE /* Build configuration list for PBXNativeTarget "DBSignup" */;
146 | buildPhases = (
147 | 6B26FB0E13C23F98000766DE /* Sources */,
148 | 6B26FB0F13C23F98000766DE /* Frameworks */,
149 | 6B26FB1013C23F98000766DE /* Resources */,
150 | );
151 | buildRules = (
152 | );
153 | dependencies = (
154 | );
155 | name = DBSignup;
156 | productName = DBSignup;
157 | productReference = 6B26FB1213C23F98000766DE /* DBSignup.app */;
158 | productType = "com.apple.product-type.application";
159 | };
160 | /* End PBXNativeTarget section */
161 |
162 | /* Begin PBXProject section */
163 | 6B26FB0913C23F97000766DE /* Project object */ = {
164 | isa = PBXProject;
165 | attributes = {
166 | ORGANIZATIONNAME = 03081340121;
167 | };
168 | buildConfigurationList = 6B26FB0C13C23F97000766DE /* Build configuration list for PBXProject "DBSignup" */;
169 | compatibilityVersion = "Xcode 3.2";
170 | developmentRegion = English;
171 | hasScannedForEncodings = 0;
172 | knownRegions = (
173 | en,
174 | );
175 | mainGroup = 6B26FB0713C23F97000766DE;
176 | productRefGroup = 6B26FB1313C23F98000766DE /* Products */;
177 | projectDirPath = "";
178 | projectRoot = "";
179 | targets = (
180 | 6B26FB1113C23F98000766DE /* DBSignup */,
181 | );
182 | };
183 | /* End PBXProject section */
184 |
185 | /* Begin PBXResourcesBuildPhase section */
186 | 6B26FB1013C23F98000766DE /* Resources */ = {
187 | isa = PBXResourcesBuildPhase;
188 | buildActionMask = 2147483647;
189 | files = (
190 | 6B26FB2113C23F98000766DE /* InfoPlist.strings in Resources */,
191 | 6B26FB2A13C23F98000766DE /* MainWindow.xib in Resources */,
192 | 6B26FB3013C23F98000766DE /* RootViewController.xib in Resources */,
193 | 6B71DD7713C268DD00FD23B0 /* DBSignupViewController.xib in Resources */,
194 | 6B41E3EF13C26BDE00A35DD6 /* male.png in Resources */,
195 | 6B41E3F013C26BDE00A35DD6 /* female.png in Resources */,
196 | 6B41E3F113C26BDE00A35DD6 /* background.png in Resources */,
197 | 6B752F2813C75F910023D62C /* background@2x.png in Resources */,
198 | );
199 | runOnlyForDeploymentPostprocessing = 0;
200 | };
201 | /* End PBXResourcesBuildPhase section */
202 |
203 | /* Begin PBXSourcesBuildPhase section */
204 | 6B26FB0E13C23F98000766DE /* Sources */ = {
205 | isa = PBXSourcesBuildPhase;
206 | buildActionMask = 2147483647;
207 | files = (
208 | 6B26FB2413C23F98000766DE /* main.m in Sources */,
209 | 6B26FB2713C23F98000766DE /* DBSignupAppDelegate.m in Sources */,
210 | 6B26FB2D13C23F98000766DE /* RootViewController.m in Sources */,
211 | 6B71DD7613C268DD00FD23B0 /* DBSignupViewController.m in Sources */,
212 | );
213 | runOnlyForDeploymentPostprocessing = 0;
214 | };
215 | /* End PBXSourcesBuildPhase section */
216 |
217 | /* Begin PBXVariantGroup section */
218 | 6B26FB1F13C23F98000766DE /* InfoPlist.strings */ = {
219 | isa = PBXVariantGroup;
220 | children = (
221 | 6B26FB2013C23F98000766DE /* en */,
222 | );
223 | name = InfoPlist.strings;
224 | sourceTree = "";
225 | };
226 | 6B26FB2813C23F98000766DE /* MainWindow.xib */ = {
227 | isa = PBXVariantGroup;
228 | children = (
229 | 6B26FB2913C23F98000766DE /* en */,
230 | );
231 | name = MainWindow.xib;
232 | sourceTree = "";
233 | };
234 | 6B26FB2E13C23F98000766DE /* RootViewController.xib */ = {
235 | isa = PBXVariantGroup;
236 | children = (
237 | 6B26FB2F13C23F98000766DE /* en */,
238 | );
239 | name = RootViewController.xib;
240 | sourceTree = "";
241 | };
242 | /* End PBXVariantGroup section */
243 |
244 | /* Begin XCBuildConfiguration section */
245 | 6B26FB3113C23F98000766DE /* Debug */ = {
246 | isa = XCBuildConfiguration;
247 | buildSettings = {
248 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
249 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
250 | GCC_C_LANGUAGE_STANDARD = gnu99;
251 | GCC_OPTIMIZATION_LEVEL = 0;
252 | GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
253 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
254 | GCC_VERSION = com.apple.compilers.llvmgcc42;
255 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
256 | GCC_WARN_UNUSED_VARIABLE = YES;
257 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
258 | SDKROOT = iphoneos;
259 | };
260 | name = Debug;
261 | };
262 | 6B26FB3213C23F98000766DE /* Release */ = {
263 | isa = XCBuildConfiguration;
264 | buildSettings = {
265 | ARCHS = "$(ARCHS_STANDARD_32_BIT)";
266 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
267 | GCC_C_LANGUAGE_STANDARD = gnu99;
268 | GCC_VERSION = com.apple.compilers.llvmgcc42;
269 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
270 | GCC_WARN_UNUSED_VARIABLE = YES;
271 | IPHONEOS_DEPLOYMENT_TARGET = 4.3;
272 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
273 | SDKROOT = iphoneos;
274 | };
275 | name = Release;
276 | };
277 | 6B26FB3413C23F98000766DE /* Debug */ = {
278 | isa = XCBuildConfiguration;
279 | buildSettings = {
280 | ALWAYS_SEARCH_USER_PATHS = NO;
281 | COPY_PHASE_STRIP = NO;
282 | GCC_DYNAMIC_NO_PIC = NO;
283 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
284 | GCC_PREFIX_HEADER = "DBSignup/DBSignup-Prefix.pch";
285 | INFOPLIST_FILE = "DBSignup/DBSignup-Info.plist";
286 | PRODUCT_NAME = "$(TARGET_NAME)";
287 | WRAPPER_EXTENSION = app;
288 | };
289 | name = Debug;
290 | };
291 | 6B26FB3513C23F98000766DE /* Release */ = {
292 | isa = XCBuildConfiguration;
293 | buildSettings = {
294 | ALWAYS_SEARCH_USER_PATHS = NO;
295 | COPY_PHASE_STRIP = YES;
296 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
297 | GCC_PREFIX_HEADER = "DBSignup/DBSignup-Prefix.pch";
298 | INFOPLIST_FILE = "DBSignup/DBSignup-Info.plist";
299 | PRODUCT_NAME = "$(TARGET_NAME)";
300 | VALIDATE_PRODUCT = YES;
301 | WRAPPER_EXTENSION = app;
302 | };
303 | name = Release;
304 | };
305 | /* End XCBuildConfiguration section */
306 |
307 | /* Begin XCConfigurationList section */
308 | 6B26FB0C13C23F97000766DE /* Build configuration list for PBXProject "DBSignup" */ = {
309 | isa = XCConfigurationList;
310 | buildConfigurations = (
311 | 6B26FB3113C23F98000766DE /* Debug */,
312 | 6B26FB3213C23F98000766DE /* Release */,
313 | );
314 | defaultConfigurationIsVisible = 0;
315 | defaultConfigurationName = Release;
316 | };
317 | 6B26FB3313C23F98000766DE /* Build configuration list for PBXNativeTarget "DBSignup" */ = {
318 | isa = XCConfigurationList;
319 | buildConfigurations = (
320 | 6B26FB3413C23F98000766DE /* Debug */,
321 | 6B26FB3513C23F98000766DE /* Release */,
322 | );
323 | defaultConfigurationIsVisible = 0;
324 | defaultConfigurationName = Release;
325 | };
326 | /* End XCConfigurationList section */
327 | };
328 | rootObject = 6B26FB0913C23F97000766DE /* Project object */;
329 | }
330 |
--------------------------------------------------------------------------------
/DBSignup/en.lproj/RootViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 784
5 | 10D541
6 | 760
7 | 1038.29
8 | 460.00
9 |
13 |
17 |
21 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 |
42 | 274
43 | {320, 247}
44 |
45 |
46 | 3
47 | MQA
48 |
49 | NO
50 | YES
51 | NO
52 | IBCocoaTouchFramework
53 | NO
54 | 1
55 | 0
56 | YES
57 | 44
58 | 22
59 | 22
60 |
61 |
62 |
63 |
64 | YES
65 |
66 |
67 | view
68 |
69 |
70 |
71 | 3
72 |
73 |
74 |
75 | dataSource
76 |
77 |
78 |
79 | 4
80 |
81 |
82 |
83 | delegate
84 |
85 |
86 |
87 | 5
88 |
89 |
90 |
91 |
92 | YES
93 |
94 | 0
95 |
96 |
97 |
98 |
99 |
100 | -1
101 |
102 |
103 | File's Owner
104 |
105 |
106 | -2
107 |
108 |
109 |
110 |
111 | 2
112 |
113 |
114 |
115 |
116 |
117 |
118 | YES
119 |
120 | YES
121 | -1.CustomClassName
122 | -2.CustomClassName
123 | 2.IBEditorWindowLastContentRect
124 | 2.IBPluginDependency
125 |
126 |
127 | YES
128 | RootViewController
129 | UIResponder
130 | {{144, 609}, {320, 247}}
131 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
132 |
133 |
134 |
135 | YES
136 |
137 |
138 | YES
139 |
140 |
141 |
142 |
143 | YES
144 |
145 |
146 | YES
147 |
148 |
149 |
150 | 5
151 |
152 |
153 |
154 | YES
155 |
156 | RootViewController
157 | UITableViewController
158 |
159 | IBProjectSource
160 | RootViewController.h
161 |
162 |
163 |
164 |
165 | YES
166 |
167 | NSObject
168 |
169 | IBFrameworkSource
170 | Foundation.framework/Headers/NSError.h
171 |
172 |
173 |
174 | NSObject
175 |
176 | IBFrameworkSource
177 | Foundation.framework/Headers/NSFileManager.h
178 |
179 |
180 |
181 | NSObject
182 |
183 | IBFrameworkSource
184 | Foundation.framework/Headers/NSKeyValueCoding.h
185 |
186 |
187 |
188 | NSObject
189 |
190 | IBFrameworkSource
191 | Foundation.framework/Headers/NSKeyValueObserving.h
192 |
193 |
194 |
195 | NSObject
196 |
197 | IBFrameworkSource
198 | Foundation.framework/Headers/NSKeyedArchiver.h
199 |
200 |
201 |
202 | NSObject
203 |
204 | IBFrameworkSource
205 | Foundation.framework/Headers/NSNetServices.h
206 |
207 |
208 |
209 | NSObject
210 |
211 | IBFrameworkSource
212 | Foundation.framework/Headers/NSObject.h
213 |
214 |
215 |
216 | NSObject
217 |
218 | IBFrameworkSource
219 | Foundation.framework/Headers/NSPort.h
220 |
221 |
222 |
223 | NSObject
224 |
225 | IBFrameworkSource
226 | Foundation.framework/Headers/NSRunLoop.h
227 |
228 |
229 |
230 | NSObject
231 |
232 | IBFrameworkSource
233 | Foundation.framework/Headers/NSStream.h
234 |
235 |
236 |
237 | NSObject
238 |
239 | IBFrameworkSource
240 | Foundation.framework/Headers/NSThread.h
241 |
242 |
243 |
244 | NSObject
245 |
246 | IBFrameworkSource
247 | Foundation.framework/Headers/NSURL.h
248 |
249 |
250 |
251 | NSObject
252 |
253 | IBFrameworkSource
254 | Foundation.framework/Headers/NSURLConnection.h
255 |
256 |
257 |
258 | NSObject
259 |
260 | IBFrameworkSource
261 | Foundation.framework/Headers/NSXMLParser.h
262 |
263 |
264 |
265 | NSObject
266 |
267 | IBFrameworkSource
268 | UIKit.framework/Headers/UIAccessibility.h
269 |
270 |
271 |
272 | NSObject
273 |
274 | IBFrameworkSource
275 | UIKit.framework/Headers/UINibLoading.h
276 |
277 |
278 |
279 | NSObject
280 |
281 | IBFrameworkSource
282 | UIKit.framework/Headers/UIResponder.h
283 |
284 |
285 |
286 | UIResponder
287 | NSObject
288 |
289 |
290 |
291 | UIScrollView
292 | UIView
293 |
294 | IBFrameworkSource
295 | UIKit.framework/Headers/UIScrollView.h
296 |
297 |
298 |
299 | UISearchBar
300 | UIView
301 |
302 | IBFrameworkSource
303 | UIKit.framework/Headers/UISearchBar.h
304 |
305 |
306 |
307 | UISearchDisplayController
308 | NSObject
309 |
310 | IBFrameworkSource
311 | UIKit.framework/Headers/UISearchDisplayController.h
312 |
313 |
314 |
315 | UITableView
316 | UIScrollView
317 |
318 | IBFrameworkSource
319 | UIKit.framework/Headers/UITableView.h
320 |
321 |
322 |
323 | UITableViewController
324 | UIViewController
325 |
326 | IBFrameworkSource
327 | UIKit.framework/Headers/UITableViewController.h
328 |
329 |
330 |
331 | UIView
332 |
333 | IBFrameworkSource
334 | UIKit.framework/Headers/UITextField.h
335 |
336 |
337 |
338 | UIView
339 | UIResponder
340 |
341 | IBFrameworkSource
342 | UIKit.framework/Headers/UIView.h
343 |
344 |
345 |
346 | UIViewController
347 |
348 | IBFrameworkSource
349 | UIKit.framework/Headers/UINavigationController.h
350 |
351 |
352 |
353 | UIViewController
354 |
355 | IBFrameworkSource
356 | UIKit.framework/Headers/UITabBarController.h
357 |
358 |
359 |
360 | UIViewController
361 | UIResponder
362 |
363 | IBFrameworkSource
364 | UIKit.framework/Headers/UIViewController.h
365 |
366 |
367 |
368 |
369 | 0
370 | IBCocoaTouchFramework
371 |
372 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
373 |
374 |
375 |
376 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
377 |
378 |
379 | YES
380 | DBSignup.xcodeproj
381 | 3
382 | 81
383 |
384 |
385 |
--------------------------------------------------------------------------------
/DBSignup/DBSignupViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // DBSignupViewController.m
3 | // DBSignup
4 | //
5 | // Created by Davide Bettio on 7/4/11.
6 | // Copyright 2011 03081340121. All rights reserved.
7 | //
8 |
9 | #import "DBSignupViewController.h"
10 |
11 | // Safe releases
12 | #define RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }
13 |
14 | #define FIELDS_COUNT 7
15 | #define BIRTHDAY_FIELD_TAG 5
16 | #define GENDER_FIELD_TAG 6
17 |
18 | @implementation DBSignupViewController
19 |
20 | @synthesize nameTextField = nameTextField_;
21 | @synthesize lastNameTextField = lastNameTextField_;
22 | @synthesize emailTextField = emailTextField_;
23 | @synthesize passwordTextField = passwordTextField_;
24 | @synthesize birthdayTextField = birthdayTextField_;
25 | @synthesize genderTextField = genderTextField_;
26 | @synthesize phoneTextField = phoneTextField_;
27 | @synthesize photoButton = photoButton_;
28 | @synthesize termsTextView = termsTextView_;
29 |
30 | @synthesize emailLabel = emailLabel_;
31 | @synthesize passwordLabel = passwordLabel_;
32 | @synthesize birthdayLabel = birthdayLabel_;
33 | @synthesize genderLabel = genderLabel_;
34 | @synthesize phoneLabel = phoneLabel_;
35 |
36 | @synthesize keyboardToolbar = keyboardToolbar_;
37 | @synthesize genderPickerView = genderPickerView_;
38 | @synthesize birthdayDatePicker = birthdayDatePicker_;
39 |
40 | @synthesize birthday = birthday_;
41 | @synthesize gender = gender_;
42 | @synthesize photo = photo_;
43 |
44 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
45 | {
46 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
47 | if (self) {
48 | // Custom initialization
49 | }
50 | return self;
51 | }
52 |
53 | - (void)dealloc
54 | {
55 | RELEASE_SAFELY(nameTextField_);
56 | RELEASE_SAFELY(lastNameTextField_);
57 | RELEASE_SAFELY(emailTextField_);
58 | RELEASE_SAFELY(passwordTextField_);
59 | RELEASE_SAFELY(birthdayTextField_);
60 | RELEASE_SAFELY(genderTextField_);
61 | RELEASE_SAFELY(phoneTextField_);
62 | RELEASE_SAFELY(photoButton_);
63 | RELEASE_SAFELY(termsTextView_);
64 |
65 | RELEASE_SAFELY(emailLabel_);
66 | RELEASE_SAFELY(passwordLabel_);
67 | RELEASE_SAFELY(birthdayLabel_);
68 | RELEASE_SAFELY(genderLabel_);
69 | RELEASE_SAFELY(phoneLabel_);
70 |
71 | RELEASE_SAFELY(keyboardToolbar_);
72 | RELEASE_SAFELY(birthdayDatePicker_);
73 | RELEASE_SAFELY(genderPickerView_);
74 |
75 | RELEASE_SAFELY(birthday_);
76 | RELEASE_SAFELY(gender_);
77 | RELEASE_SAFELY(photo_);
78 |
79 | [super dealloc];
80 | }
81 |
82 | - (void)didReceiveMemoryWarning
83 | {
84 | // Releases the view if it doesn't have a superview.
85 | [super didReceiveMemoryWarning];
86 |
87 | // Release any cached data, images, etc that aren't in use.
88 | }
89 |
90 | #pragma mark - View lifecycle
91 |
92 | /*
93 | // Implement loadView to create a view hierarchy programmatically, without using a nib.
94 | - (void)loadView
95 | {
96 | }
97 | */
98 |
99 |
100 | // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
101 | - (void)viewDidLoad
102 | {
103 | [super viewDidLoad];
104 |
105 | // Signup button
106 | UIBarButtonItem *signupBarItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"signup", @"") style:UIBarButtonItemStyleBordered target:self action:@selector(signup:)];
107 | self.navigationItem.rightBarButtonItem = signupBarItem;
108 | [signupBarItem release];
109 |
110 | // Birthday date picker
111 | if (self.birthdayDatePicker == nil) {
112 | self.birthdayDatePicker = [[UIDatePicker alloc] init];
113 | [self.birthdayDatePicker addTarget:self action:@selector(birthdayDatePickerChanged:) forControlEvents:UIControlEventValueChanged];
114 | self.birthdayDatePicker.datePickerMode = UIDatePickerModeDate;
115 | NSDate *currentDate = [NSDate date];
116 | NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
117 | [dateComponents setYear:-18];
118 | NSDate *selectedDate = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:currentDate options:0];
119 | [dateComponents release];
120 | [self.birthdayDatePicker setDate:selectedDate animated:NO];
121 | [self.birthdayDatePicker setMaximumDate:currentDate];
122 | }
123 |
124 | // Gender picker
125 | if (self.genderPickerView == nil) {
126 | self.genderPickerView = [[UIPickerView alloc] init];
127 | self.genderPickerView.delegate = self;
128 | self.genderPickerView.showsSelectionIndicator = YES;
129 | }
130 |
131 | // Keyboard toolbar
132 | if (self.keyboardToolbar == nil) {
133 | self.keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 38.0f)];
134 | self.keyboardToolbar.barStyle = UIBarStyleBlackTranslucent;
135 |
136 | UIBarButtonItem *previousBarItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"previous", @"")
137 | style:UIBarButtonItemStyleBordered
138 | target:self
139 | action:@selector(previousField:)];
140 |
141 | UIBarButtonItem *nextBarItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"next", @"")
142 | style:UIBarButtonItemStyleBordered
143 | target:self
144 | action:@selector(nextField:)];
145 |
146 | UIBarButtonItem *spaceBarItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
147 | target:nil
148 | action:nil];
149 |
150 | UIBarButtonItem *doneBarItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"done", @"")
151 | style:UIBarButtonItemStyleDone
152 | target:self
153 | action:@selector(resignKeyboard:)];
154 |
155 | [self.keyboardToolbar setItems:[NSArray arrayWithObjects:previousBarItem, nextBarItem, spaceBarItem, doneBarItem, nil]];
156 |
157 | self.nameTextField.inputAccessoryView = self.keyboardToolbar;
158 | self.lastNameTextField.inputAccessoryView = self.keyboardToolbar;
159 | self.emailTextField.inputAccessoryView = self.keyboardToolbar;
160 | self.passwordTextField.inputAccessoryView = self.keyboardToolbar;
161 | self.birthdayTextField.inputAccessoryView = self.keyboardToolbar;
162 | self.birthdayTextField.inputView = self.birthdayDatePicker;
163 | self.genderTextField.inputAccessoryView = self.keyboardToolbar;
164 | self.genderTextField.inputView = self.genderPickerView;
165 | self.phoneTextField.inputAccessoryView = self.keyboardToolbar;
166 |
167 | [previousBarItem release];
168 | [nextBarItem release];
169 | [spaceBarItem release];
170 | [doneBarItem release];
171 | }
172 |
173 | // Set localization
174 | self.nameTextField.placeholder = NSLocalizedString(@"first_name", @"");
175 | self.lastNameTextField.placeholder = NSLocalizedString(@"last_name", @"");
176 | self.emailLabel.text = [NSLocalizedString(@"email", @"") uppercaseString];
177 | self.passwordLabel.text = [NSLocalizedString(@"password", @"") uppercaseString];
178 | self.birthdayLabel.text = [NSLocalizedString(@"birthdate", @"") uppercaseString];
179 | self.genderLabel.text = [NSLocalizedString(@"gender", @"") uppercaseString];
180 | self.phoneLabel.text = [NSLocalizedString(@"phone", @"") uppercaseString];
181 | self.phoneTextField.placeholder = NSLocalizedString(@"optional", @"");
182 | self.termsTextView.text = NSLocalizedString(@"terms", @"");
183 |
184 | // Reset labels colors
185 | [self resetLabelsColors];
186 | }
187 |
188 |
189 | - (void)viewDidUnload
190 | {
191 | [super viewDidUnload];
192 | // Release any retained subviews of the main view.
193 | // e.g. self.myOutlet = nil;
194 | }
195 |
196 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
197 | {
198 | // Return YES for supported orientations
199 | return (interfaceOrientation == UIInterfaceOrientationPortrait);
200 | }
201 |
202 |
203 | #pragma mark - IBActions
204 |
205 | - (IBAction)choosePhoto:(id)sender
206 | {
207 | UIActionSheet *choosePhotoActionSheet;
208 |
209 | if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
210 | choosePhotoActionSheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"choose_photo", @"")
211 | delegate:self
212 | cancelButtonTitle:NSLocalizedString(@"cancel", @"")
213 | destructiveButtonTitle:nil
214 | otherButtonTitles:NSLocalizedString(@"take_photo_from_camera", @""), NSLocalizedString(@"take_photo_from_library", @""), nil];
215 | } else {
216 | choosePhotoActionSheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"choose_photo", @"")
217 | delegate:self
218 | cancelButtonTitle:NSLocalizedString(@"cancel", @"")
219 | destructiveButtonTitle:nil
220 | otherButtonTitles:NSLocalizedString(@"take_photo_from_library", @""), nil];
221 | }
222 |
223 | [choosePhotoActionSheet showInView:self.view];
224 | [choosePhotoActionSheet release];
225 | }
226 |
227 |
228 | #pragma mark - Others
229 |
230 | - (void)signup:(id)sender
231 | {
232 | [self resignKeyboard:nil];
233 |
234 | // Check fields
235 |
236 | // Make request
237 | }
238 |
239 | - (void)resignKeyboard:(id)sender
240 | {
241 | id firstResponder = [self getFirstResponder];
242 | if ([firstResponder isKindOfClass:[UITextField class]]) {
243 | [firstResponder resignFirstResponder];
244 | [self animateView:1];
245 | [self resetLabelsColors];
246 | }
247 | }
248 |
249 | - (void)previousField:(id)sender
250 | {
251 | id firstResponder = [self getFirstResponder];
252 | if ([firstResponder isKindOfClass:[UITextField class]]) {
253 | NSUInteger tag = [firstResponder tag];
254 | NSUInteger previousTag = tag == 1 ? 1 : tag - 1;
255 | [self checkBarButton:previousTag];
256 | [self animateView:previousTag];
257 | UITextField *previousField = (UITextField *)[self.view viewWithTag:previousTag];
258 | [previousField becomeFirstResponder];
259 | UILabel *nextLabel = (UILabel *)[self.view viewWithTag:previousTag + 10];
260 | if (nextLabel) {
261 | [self resetLabelsColors];
262 | [nextLabel setTextColor:[DBSignupViewController labelSelectedColor]];
263 | }
264 | [self checkSpecialFields:previousTag];
265 | }
266 | }
267 |
268 | - (void)nextField:(id)sender
269 | {
270 | id firstResponder = [self getFirstResponder];
271 | if ([firstResponder isKindOfClass:[UITextField class]]) {
272 | NSUInteger tag = [firstResponder tag];
273 | NSUInteger nextTag = tag == FIELDS_COUNT ? FIELDS_COUNT : tag + 1;
274 | [self checkBarButton:nextTag];
275 | [self animateView:nextTag];
276 | UITextField *nextField = (UITextField *)[self.view viewWithTag:nextTag];
277 | [nextField becomeFirstResponder];
278 | UILabel *nextLabel = (UILabel *)[self.view viewWithTag:nextTag + 10];
279 | if (nextLabel) {
280 | [self resetLabelsColors];
281 | [nextLabel setTextColor:[DBSignupViewController labelSelectedColor]];
282 | }
283 | [self checkSpecialFields:nextTag];
284 | }
285 | }
286 |
287 | - (id)getFirstResponder
288 | {
289 | NSUInteger index = 0;
290 | while (index <= FIELDS_COUNT) {
291 | UITextField *textField = (UITextField *)[self.view viewWithTag:index];
292 | if ([textField isFirstResponder]) {
293 | return textField;
294 | }
295 | index++;
296 | }
297 |
298 | return NO;
299 | }
300 |
301 | - (void)animateView:(NSUInteger)tag
302 | {
303 | CGRect rect = self.view.frame;
304 | [UIView beginAnimations:nil context:NULL];
305 | [UIView setAnimationDuration:0.3];
306 |
307 | if (tag > 3) {
308 | rect.origin.y = -44.0f * (tag - 3);
309 | } else {
310 | rect.origin.y = 0;
311 | }
312 | self.view.frame = rect;
313 | [UIView commitAnimations];
314 | }
315 |
316 | - (void)checkBarButton:(NSUInteger)tag
317 | {
318 | UIBarButtonItem *previousBarItem = (UIBarButtonItem *)[[self.keyboardToolbar items] objectAtIndex:0];
319 | UIBarButtonItem *nextBarItem = (UIBarButtonItem *)[[self.keyboardToolbar items] objectAtIndex:1];
320 |
321 | [previousBarItem setEnabled:tag == 1 ? NO : YES];
322 | [nextBarItem setEnabled:tag == FIELDS_COUNT ? NO : YES];
323 | }
324 |
325 | - (void)checkSpecialFields:(NSUInteger)tag
326 | {
327 | if (tag == BIRTHDAY_FIELD_TAG && [self.birthdayTextField.text isEqualToString:@""]) {
328 | [self setBirthdayData];
329 | } else if (tag == GENDER_FIELD_TAG && [self.genderTextField.text isEqualToString:@""]) {
330 | [self setGenderData];
331 | }
332 | }
333 |
334 | - (void)setBirthdayData
335 | {
336 | self.birthday = self.birthdayDatePicker.date;
337 | NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
338 | [dateFormatter setDateStyle:NSDateFormatterLongStyle];
339 | [dateFormatter setLocale:[NSLocale currentLocale]];
340 | self.birthdayTextField.text = [dateFormatter stringFromDate:self.birthday];
341 | [dateFormatter release];
342 | }
343 |
344 | - (void)setGenderData
345 | {
346 | if ([self.genderPickerView selectedRowInComponent:0] == 0) {
347 | self.genderTextField.text = NSLocalizedString(@"male", @"");
348 | self.gender = @"M";
349 | } else {
350 | self.genderTextField.text = NSLocalizedString(@"female", @"");
351 | self.gender = @"F";
352 | }
353 | }
354 |
355 | - (void)birthdayDatePickerChanged:(id)sender
356 | {
357 | [self setBirthdayData];
358 | }
359 |
360 | - (void)resetLabelsColors
361 | {
362 | self.emailLabel.textColor = [DBSignupViewController labelNormalColor];
363 | self.passwordLabel.textColor = [DBSignupViewController labelNormalColor];
364 | self.birthdayLabel.textColor = [DBSignupViewController labelNormalColor];
365 | self.genderLabel.textColor = [DBSignupViewController labelNormalColor];
366 | self.phoneLabel.textColor = [DBSignupViewController labelNormalColor];
367 | }
368 |
369 | + (UIColor *)labelNormalColor
370 | {
371 | return [UIColor colorWithRed:0.016 green:0.216 blue:0.286 alpha:1.000];
372 | }
373 |
374 | + (UIColor *)labelSelectedColor
375 | {
376 | return [UIColor colorWithRed:0.114 green:0.600 blue:0.737 alpha:1.000];
377 | }
378 |
379 | #pragma mark - UITextFieldDelegate
380 |
381 | - (void)textFieldDidBeginEditing:(UITextField *)textField
382 | {
383 | NSUInteger tag = [textField tag];
384 | [self animateView:tag];
385 | [self checkBarButton:tag];
386 | [self checkSpecialFields:tag];
387 | UILabel *label = (UILabel *)[self.view viewWithTag:tag + 10];
388 | if (label) {
389 | [self resetLabelsColors];
390 | [label setTextColor:[DBSignupViewController labelSelectedColor]];
391 | }
392 | }
393 |
394 | - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
395 | {
396 | NSUInteger tag = [textField tag];
397 | if (tag == BIRTHDAY_FIELD_TAG || tag == GENDER_FIELD_TAG) {
398 | return NO;
399 | }
400 |
401 | return YES;
402 | }
403 |
404 |
405 | #pragma mark - UIPickerViewDataSource
406 |
407 | - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
408 | {
409 | return 1;
410 | }
411 |
412 | - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
413 | {
414 | return 2;
415 | }
416 |
417 |
418 | #pragma mark - UIPickerViewDelegate
419 |
420 | - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
421 | {
422 | UIImage *image = row == 0 ? [UIImage imageNamed:@"male.png"] : [UIImage imageNamed:@"female.png"];
423 | UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
424 | imageView.frame = CGRectMake(0, 0, 32, 32);
425 |
426 | UILabel *genderLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 100, 32)];
427 | genderLabel.text = [row == 0 ? NSLocalizedString(@"male", @"") : NSLocalizedString(@"female", @"") uppercaseString];
428 | genderLabel.textAlignment = UITextAlignmentLeft;
429 | genderLabel.backgroundColor = [UIColor clearColor];
430 |
431 | UIView *rowView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 32)] autorelease];
432 | [rowView insertSubview:imageView atIndex:0];
433 | [rowView insertSubview:genderLabel atIndex:1];
434 |
435 | [imageView release];
436 | [genderLabel release];
437 |
438 | return rowView;
439 | }
440 |
441 | - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
442 | {
443 | [self setGenderData];
444 | }
445 |
446 |
447 | #pragma mark - UIActionSheetDelegate
448 |
449 | - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
450 | {
451 | NSUInteger sourceType = 0;
452 | if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
453 | switch (buttonIndex) {
454 | case 0:
455 | sourceType = UIImagePickerControllerSourceTypeCamera;
456 | break;
457 | case 1:
458 | sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
459 | break;
460 | case 2:
461 | return;
462 | }
463 | } else {
464 | if (buttonIndex == 1) {
465 | return;
466 | } else {
467 | sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
468 | }
469 | }
470 |
471 | UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
472 | imagePickerController.delegate = self;
473 | imagePickerController.allowsEditing = YES;
474 | imagePickerController.sourceType = sourceType;
475 | [self presentModalViewController:imagePickerController animated:YES];
476 | }
477 |
478 |
479 | #pragma mark - UIImagePickerControllerDelegate
480 |
481 | - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
482 | {
483 | [picker dismissModalViewControllerAnimated:YES];
484 | self.photo = [info objectForKey:UIImagePickerControllerEditedImage];
485 | [self.photoButton setImage:self.photo forState:UIControlStateNormal];
486 | }
487 |
488 |
489 | - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
490 | {
491 | [self dismissModalViewControllerAnimated:YES];
492 | }
493 |
494 | @end
495 |
--------------------------------------------------------------------------------
/DBSignup/en.lproj/MainWindow.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1024
5 | 10D571
6 | 786
7 | 1038.29
8 | 460.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 112
12 |
13 |
14 | YES
15 |
16 |
17 |
18 | YES
19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
20 |
21 |
22 | YES
23 |
24 | YES
25 |
26 |
27 | YES
28 |
29 |
30 |
31 | YES
32 |
33 | IBFilesOwner
34 | IBCocoaTouchFramework
35 |
36 |
37 | IBFirstResponder
38 | IBCocoaTouchFramework
39 |
40 |
41 | IBCocoaTouchFramework
42 |
43 |
44 |
45 | 1316
46 |
47 | {320, 480}
48 |
49 | 1
50 | MSAxIDEAA
51 |
52 | NO
53 | NO
54 |
55 | IBCocoaTouchFramework
56 | YES
57 |
58 |
59 |
60 |
61 | 1
62 |
63 | IBCocoaTouchFramework
64 | NO
65 |
66 |
67 | 256
68 | {0, 0}
69 | NO
70 | YES
71 | YES
72 | IBCocoaTouchFramework
73 |
74 |
75 | YES
76 |
77 |
78 |
79 | IBCocoaTouchFramework
80 |
81 |
82 | RootViewController
83 |
84 |
85 | 1
86 |
87 | IBCocoaTouchFramework
88 | NO
89 |
90 |
91 |
92 |
93 |
94 |
95 | YES
96 |
97 |
98 | delegate
99 |
100 |
101 |
102 | 4
103 |
104 |
105 |
106 | window
107 |
108 |
109 |
110 | 5
111 |
112 |
113 |
114 | navigationController
115 |
116 |
117 |
118 | 15
119 |
120 |
121 |
122 |
123 | YES
124 |
125 | 0
126 |
127 |
128 |
129 |
130 |
131 | 2
132 |
133 |
134 | YES
135 |
136 |
137 |
138 |
139 | -1
140 |
141 |
142 | File's Owner
143 |
144 |
145 | 3
146 |
147 |
148 |
149 |
150 | -2
151 |
152 |
153 |
154 |
155 | 9
156 |
157 |
158 | YES
159 |
160 |
161 |
162 |
163 |
164 |
165 | 11
166 |
167 |
168 |
169 |
170 | 13
171 |
172 |
173 | YES
174 |
175 |
176 |
177 |
178 |
179 | 14
180 |
181 |
182 |
183 |
184 |
185 |
186 | YES
187 |
188 | YES
189 | -1.CustomClassName
190 | -2.CustomClassName
191 | 11.IBPluginDependency
192 | 13.CustomClassName
193 | 13.IBPluginDependency
194 | 2.IBAttributePlaceholdersKey
195 | 2.IBEditorWindowLastContentRect
196 | 2.IBPluginDependency
197 | 3.CustomClassName
198 | 3.IBPluginDependency
199 | 9.IBEditorWindowLastContentRect
200 | 9.IBPluginDependency
201 |
202 |
203 | YES
204 | UIApplication
205 | UIResponder
206 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
207 | RootViewController
208 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
209 |
210 | YES
211 |
212 |
213 | YES
214 |
215 |
216 | {{673, 376}, {320, 480}}
217 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
218 | DBSignupAppDelegate
219 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
220 | {{186, 376}, {320, 480}}
221 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
222 |
223 |
224 |
225 | YES
226 |
227 |
228 | YES
229 |
230 |
231 |
232 |
233 | YES
234 |
235 |
236 | YES
237 |
238 |
239 |
240 | 16
241 |
242 |
243 |
244 | YES
245 |
246 | RootViewController
247 | UITableViewController
248 |
249 | IBProjectSource
250 | RootViewController.h
251 |
252 |
253 |
254 | UIWindow
255 | UIView
256 |
257 | IBUserSource
258 |
259 |
260 |
261 |
262 | DBSignupAppDelegate
263 | NSObject
264 |
265 | YES
266 |
267 | YES
268 | navigationController
269 | window
270 |
271 |
272 | YES
273 | UINavigationController
274 | UIWindow
275 |
276 |
277 |
278 | YES
279 |
280 | YES
281 | navigationController
282 | window
283 |
284 |
285 | YES
286 |
287 | navigationController
288 | UINavigationController
289 |
290 |
291 | window
292 | UIWindow
293 |
294 |
295 |
296 |
297 | IBProjectSource
298 | DBSignupAppDelegate.h
299 |
300 |
301 |
302 |
303 | YES
304 |
305 | NSObject
306 |
307 | IBFrameworkSource
308 | Foundation.framework/Headers/NSError.h
309 |
310 |
311 |
312 | NSObject
313 |
314 | IBFrameworkSource
315 | Foundation.framework/Headers/NSFileManager.h
316 |
317 |
318 |
319 | NSObject
320 |
321 | IBFrameworkSource
322 | Foundation.framework/Headers/NSKeyValueCoding.h
323 |
324 |
325 |
326 | NSObject
327 |
328 | IBFrameworkSource
329 | Foundation.framework/Headers/NSKeyValueObserving.h
330 |
331 |
332 |
333 | NSObject
334 |
335 | IBFrameworkSource
336 | Foundation.framework/Headers/NSKeyedArchiver.h
337 |
338 |
339 |
340 | NSObject
341 |
342 | IBFrameworkSource
343 | Foundation.framework/Headers/NSObject.h
344 |
345 |
346 |
347 | NSObject
348 |
349 | IBFrameworkSource
350 | Foundation.framework/Headers/NSRunLoop.h
351 |
352 |
353 |
354 | NSObject
355 |
356 | IBFrameworkSource
357 | Foundation.framework/Headers/NSThread.h
358 |
359 |
360 |
361 | NSObject
362 |
363 | IBFrameworkSource
364 | Foundation.framework/Headers/NSURL.h
365 |
366 |
367 |
368 | NSObject
369 |
370 | IBFrameworkSource
371 | Foundation.framework/Headers/NSURLConnection.h
372 |
373 |
374 |
375 | NSObject
376 |
377 | IBFrameworkSource
378 | UIKit.framework/Headers/UIAccessibility.h
379 |
380 |
381 |
382 | NSObject
383 |
384 | IBFrameworkSource
385 | UIKit.framework/Headers/UINibLoading.h
386 |
387 |
388 |
389 | NSObject
390 |
391 | IBFrameworkSource
392 | UIKit.framework/Headers/UIResponder.h
393 |
394 |
395 |
396 | UIApplication
397 | UIResponder
398 |
399 | IBFrameworkSource
400 | UIKit.framework/Headers/UIApplication.h
401 |
402 |
403 |
404 | UIBarButtonItem
405 | UIBarItem
406 |
407 | IBFrameworkSource
408 | UIKit.framework/Headers/UIBarButtonItem.h
409 |
410 |
411 |
412 | UIBarItem
413 | NSObject
414 |
415 | IBFrameworkSource
416 | UIKit.framework/Headers/UIBarItem.h
417 |
418 |
419 |
420 | UINavigationBar
421 | UIView
422 |
423 | IBFrameworkSource
424 | UIKit.framework/Headers/UINavigationBar.h
425 |
426 |
427 |
428 | UINavigationController
429 | UIViewController
430 |
431 | IBFrameworkSource
432 | UIKit.framework/Headers/UINavigationController.h
433 |
434 |
435 |
436 | UINavigationItem
437 | NSObject
438 |
439 |
440 |
441 | UIResponder
442 | NSObject
443 |
444 |
445 |
446 | UISearchBar
447 | UIView
448 |
449 | IBFrameworkSource
450 | UIKit.framework/Headers/UISearchBar.h
451 |
452 |
453 |
454 | UISearchDisplayController
455 | NSObject
456 |
457 | IBFrameworkSource
458 | UIKit.framework/Headers/UISearchDisplayController.h
459 |
460 |
461 |
462 | UITableViewController
463 | UIViewController
464 |
465 | IBFrameworkSource
466 | UIKit.framework/Headers/UITableViewController.h
467 |
468 |
469 |
470 | UIView
471 |
472 | IBFrameworkSource
473 | UIKit.framework/Headers/UITextField.h
474 |
475 |
476 |
477 | UIView
478 | UIResponder
479 |
480 | IBFrameworkSource
481 | UIKit.framework/Headers/UIView.h
482 |
483 |
484 |
485 | UIViewController
486 |
487 |
488 |
489 | UIViewController
490 |
491 | IBFrameworkSource
492 | UIKit.framework/Headers/UIPopoverController.h
493 |
494 |
495 |
496 | UIViewController
497 |
498 | IBFrameworkSource
499 | UIKit.framework/Headers/UISplitViewController.h
500 |
501 |
502 |
503 | UIViewController
504 |
505 | IBFrameworkSource
506 | UIKit.framework/Headers/UITabBarController.h
507 |
508 |
509 |
510 | UIViewController
511 | UIResponder
512 |
513 | IBFrameworkSource
514 | UIKit.framework/Headers/UIViewController.h
515 |
516 |
517 |
518 | UIWindow
519 | UIView
520 |
521 | IBFrameworkSource
522 | UIKit.framework/Headers/UIWindow.h
523 |
524 |
525 |
526 |
527 | 0
528 | IBCocoaTouchFramework
529 |
530 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
531 |
532 |
533 |
534 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
535 |
536 |
537 | YES
538 | DBSignup.xcodeproj
539 | 3
540 | 112
541 |
542 |
543 |
--------------------------------------------------------------------------------
/DBSignup/DBSignupViewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1056
5 | 11A511
6 | 1617
7 | 1138
8 | 566.00
9 |
10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
11 | 534
12 |
13 |
14 | YES
15 | IBProxyObject
16 | IBUIImageView
17 | IBUILabel
18 | IBUIButton
19 | IBUITextField
20 | IBUITextView
21 | IBUIView
22 |
23 |
24 | YES
25 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
26 |
27 |
28 | YES
29 |
30 | YES
31 |
32 |
33 |
34 |
35 | YES
36 |
37 | IBFilesOwner
38 | IBCocoaTouchFramework
39 |
40 |
41 | IBFirstResponder
42 | IBCocoaTouchFramework
43 |
44 |
45 |
46 | 274
47 |
48 | YES
49 |
50 |
51 | 274
52 | {{10, 10}, {301, 325}}
53 |
54 |
55 |
56 | NO
57 | IBCocoaTouchFramework
58 |
59 | NSImage
60 | background.png
61 |
62 |
63 |
64 |
65 | 292
66 | {{116, 18}, {185, 31}}
67 |
68 |
69 |
70 | NO
71 | YES
72 | 1
73 | IBCocoaTouchFramework
74 | 0
75 |
76 | Name
77 |
78 | 3
79 | MAA
80 |
81 | 2
82 |
83 |
84 |
85 | HelveticaNeue
86 | 15
87 | 16
88 |
89 | YES
90 | 17
91 |
92 | IBCocoaTouchFramework
93 |
94 | 1
95 |
96 |
97 |
98 | 292
99 | {{116, 61}, {185, 31}}
100 |
101 |
102 |
103 | NO
104 | YES
105 | 2
106 | IBCocoaTouchFramework
107 | 0
108 |
109 | Last name
110 |
111 | 3
112 | MAA
113 |
114 |
115 |
116 | YES
117 | 17
118 |
119 | IBCocoaTouchFramework
120 |
121 | 1
122 |
123 |
124 |
125 | 292
126 | {{117, 122}, {189, 31}}
127 |
128 |
129 |
130 | NO
131 | YES
132 | 3
133 | IBCocoaTouchFramework
134 | 0
135 |
136 |
137 | 3
138 | MAA
139 |
140 |
141 |
142 | YES
143 | 17
144 |
145 | 7
146 | IBCocoaTouchFramework
147 |
148 |
149 |
150 |
151 | 292
152 | {{117, 166}, {189, 31}}
153 |
154 |
155 |
156 | NO
157 | YES
158 | 4
159 | IBCocoaTouchFramework
160 | 0
161 |
162 |
163 | 3
164 | MAA
165 |
166 |
167 |
168 | YES
169 | 17
170 |
171 | 1
172 | YES
173 | IBCocoaTouchFramework
174 |
175 |
176 |
177 |
178 | 292
179 | {{117, 210}, {189, 31}}
180 |
181 |
182 |
183 | NO
184 | YES
185 | 5
186 | IBCocoaTouchFramework
187 | 0
188 |
189 |
190 | 3
191 | MAA
192 |
193 |
194 |
195 | YES
196 | 17
197 |
198 | IBCocoaTouchFramework
199 |
200 |
201 |
202 |
203 | 292
204 | {{117, 254}, {189, 31}}
205 |
206 |
207 |
208 | NO
209 | YES
210 | 6
211 | IBCocoaTouchFramework
212 | 0
213 |
214 |
215 | 3
216 | MAA
217 |
218 |
219 |
220 | YES
221 | 17
222 |
223 | IBCocoaTouchFramework
224 |
225 |
226 |
227 |
228 | 292
229 | {{117, 297}, {189, 31}}
230 |
231 |
232 |
233 | NO
234 | YES
235 | 7
236 | IBCocoaTouchFramework
237 | 0
238 |
239 | Optional
240 |
241 | 3
242 | MAA
243 |
244 |
245 |
246 | YES
247 | 17
248 |
249 | 5
250 | IBCocoaTouchFramework
251 |
252 |
253 |
254 |
255 | 292
256 | {{20, 127}, {89, 21}}
257 |
258 |
259 |
260 |
261 | 3
262 | MSAwAA
263 |
264 | NO
265 | YES
266 | 7
267 | 13
268 | NO
269 | IBCocoaTouchFramework
270 | EMAIL
271 |
272 | HelveticaNeue-Bold
273 | 11
274 | 16
275 |
276 |
277 | 1
278 | MC4wMTU2ODYyNzQ1MSAwLjIxNTY4NjI3NDUgMC4yODYyNzQ1MDk4AA
279 |
280 |
281 | 1
282 | 10
283 |
284 |
285 |
286 | 292
287 | {{20, 171}, {89, 21}}
288 |
289 |
290 |
291 | NO
292 | YES
293 | 7
294 | 14
295 | NO
296 | IBCocoaTouchFramework
297 | PASSWORD
298 |
299 |
300 | 1
301 | MC4wMTU2ODYyNzQ1MSAwLjIxNTY4NjI3NDUgMC4yODYyNzQ1MDk4AA
302 |
303 |
304 | 1
305 | 10
306 |
307 |
308 |
309 | 292
310 | {{20, 215}, {89, 21}}
311 |
312 |
313 |
314 | NO
315 | YES
316 | 7
317 | 15
318 | NO
319 | IBCocoaTouchFramework
320 | BIRTHDAY
321 |
322 |
323 | 1
324 | MC4wMTU2ODYyNzQ1MSAwLjIxNTY4NjI3NDUgMC4yODYyNzQ1MDk4AA
325 |
326 |
327 | 1
328 | 10
329 |
330 |
331 |
332 | 292
333 | {{20, 259}, {89, 21}}
334 |
335 |
336 |
337 | NO
338 | YES
339 | 7
340 | 16
341 | NO
342 | IBCocoaTouchFramework
343 | GENDER
344 |
345 |
346 |
347 | 1
348 | 10
349 |
350 |
351 |
352 | 292
353 | {{20, 302}, {89, 21}}
354 |
355 |
356 |
357 | NO
358 | YES
359 | 7
360 | 17
361 | NO
362 | IBCocoaTouchFramework
363 | PHONE
364 |
365 |
366 |
367 | 1
368 | 10
369 |
370 |
371 |
372 | 292
373 | {{10, 348}, {301, 58}}
374 |
375 |
376 |
377 |
378 | 1
379 | MSAxIDEgMAA
380 |
381 | YES
382 | YES
383 | IBCocoaTouchFramework
384 | NO
385 | terms
386 |
387 | Helvetica
388 | 11
389 | 16
390 |
391 | 1
392 |
393 | 2
394 | IBCocoaTouchFramework
395 |
396 | 2
397 |
398 |
399 |
400 | 292
401 | {{10, 10}, {86, 86}}
402 |
403 |
404 |
405 | NO
406 | IBCocoaTouchFramework
407 | 0
408 | 0
409 |
410 | Helvetica-Bold
411 | 15
412 | 16
413 |
414 |
415 | 3
416 | MQA
417 |
418 |
419 | 1
420 | MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
421 |
422 |
423 | 3
424 | MC41AA
425 |
426 |
427 |
428 | {{0, 64}, {320, 416}}
429 |
430 |
431 |
432 |
433 | 1
434 | MC45MDE5NjA3ODQzIDAuOTAxOTYwNzg0MyAwLjkwMTk2MDc4NDMAA
435 |
436 |
437 |
438 | NO
439 |
440 | IBCocoaTouchFramework
441 |
442 |
443 |
444 |
445 | YES
446 |
447 |
448 | view
449 |
450 |
451 |
452 | 3
453 |
454 |
455 |
456 | nameTextField
457 |
458 |
459 |
460 | 7
461 |
462 |
463 |
464 | lastNameTextField
465 |
466 |
467 |
468 | 8
469 |
470 |
471 |
472 | emailTextField
473 |
474 |
475 |
476 | 14
477 |
478 |
479 |
480 | passwordTextField
481 |
482 |
483 |
484 | 15
485 |
486 |
487 |
488 | birthdayTextField
489 |
490 |
491 |
492 | 16
493 |
494 |
495 |
496 | genderTextField
497 |
498 |
499 |
500 | 17
501 |
502 |
503 |
504 | phoneTextField
505 |
506 |
507 |
508 | 18
509 |
510 |
511 |
512 | delegate
513 |
514 |
515 |
516 | 24
517 |
518 |
519 |
520 | delegate
521 |
522 |
523 |
524 | 25
525 |
526 |
527 |
528 | delegate
529 |
530 |
531 |
532 | 26
533 |
534 |
535 |
536 | delegate
537 |
538 |
539 |
540 | 27
541 |
542 |
543 |
544 | delegate
545 |
546 |
547 |
548 | 28
549 |
550 |
551 |
552 | delegate
553 |
554 |
555 |
556 | 29
557 |
558 |
559 |
560 | delegate
561 |
562 |
563 |
564 | 30
565 |
566 |
567 |
568 | birthdayLabel
569 |
570 |
571 |
572 | 31
573 |
574 |
575 |
576 | emailLabel
577 |
578 |
579 |
580 | 32
581 |
582 |
583 |
584 | genderLabel
585 |
586 |
587 |
588 | 33
589 |
590 |
591 |
592 | passwordLabel
593 |
594 |
595 |
596 | 34
597 |
598 |
599 |
600 | phoneLabel
601 |
602 |
603 |
604 | 35
605 |
606 |
607 |
608 | termsTextView
609 |
610 |
611 |
612 | 40
613 |
614 |
615 |
616 | photoButton
617 |
618 |
619 |
620 | 43
621 |
622 |
623 |
624 | choosePhoto:
625 |
626 |
627 | 7
628 |
629 | 44
630 |
631 |
632 |
633 |
634 | YES
635 |
636 | 0
637 |
638 |
639 |
640 |
641 |
642 | 1
643 |
644 |
645 | YES
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 | -1
666 |
667 |
668 | File's Owner
669 |
670 |
671 | -2
672 |
673 |
674 |
675 |
676 | 4
677 |
678 |
679 |
680 |
681 | 5
682 |
683 |
684 |
685 |
686 | 6
687 |
688 |
689 |
690 |
691 | 9
692 |
693 |
694 |
695 |
696 | 10
697 |
698 |
699 |
700 |
701 | 11
702 |
703 |
704 |
705 |
706 | 12
707 |
708 |
709 |
710 |
711 | 13
712 |
713 |
714 |
715 |
716 | 19
717 |
718 |
719 |
720 |
721 | 20
722 |
723 |
724 |
725 |
726 | 21
727 |
728 |
729 |
730 |
731 | 22
732 |
733 |
734 |
735 |
736 | 23
737 |
738 |
739 |
740 |
741 | 38
742 |
743 |
744 |
745 |
746 | 42
747 |
748 |
749 |
750 |
751 |
752 |
753 | YES
754 |
755 | YES
756 | -1.CustomClassName
757 | -1.IBPluginDependency
758 | -2.CustomClassName
759 | -2.IBPluginDependency
760 | 1.IBPluginDependency
761 | 10.IBPluginDependency
762 | 11.IBPluginDependency
763 | 12.IBPluginDependency
764 | 13.IBPluginDependency
765 | 19.IBPluginDependency
766 | 20.IBPluginDependency
767 | 21.IBPluginDependency
768 | 22.IBPluginDependency
769 | 23.IBPluginDependency
770 | 38.IBPluginDependency
771 | 4.IBPluginDependency
772 | 42.IBPluginDependency
773 | 5.IBPluginDependency
774 | 6.IBPluginDependency
775 | 9.IBPluginDependency
776 |
777 |
778 | YES
779 | DBSignupViewController
780 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
781 | UIResponder
782 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
783 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
784 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
785 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
786 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
787 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
788 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
789 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
790 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
791 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
792 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
793 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
794 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
795 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
796 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
797 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
798 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin
799 |
800 |
801 |
802 | YES
803 |
804 |
805 |
806 |
807 |
808 | YES
809 |
810 |
811 |
812 |
813 | 44
814 |
815 |
816 |
817 | YES
818 |
819 | DBSignupViewController
820 | UIViewController
821 |
822 | choosePhoto:
823 | id
824 |
825 |
826 | choosePhoto:
827 |
828 | choosePhoto:
829 | id
830 |
831 |
832 |
833 | YES
834 |
835 | YES
836 | birthdayLabel
837 | birthdayTextField
838 | emailLabel
839 | emailTextField
840 | genderLabel
841 | genderTextField
842 | lastNameTextField
843 | nameTextField
844 | passwordLabel
845 | passwordTextField
846 | phoneLabel
847 | phoneTextField
848 | photoButton
849 | termsTextView
850 |
851 |
852 | YES
853 | UILabel
854 | UITextField
855 | UILabel
856 | UITextField
857 | UILabel
858 | UITextField
859 | UITextField
860 | UITextField
861 | UILabel
862 | UITextField
863 | UILabel
864 | UITextField
865 | UIButton
866 | UITextView
867 |
868 |
869 |
870 | YES
871 |
872 | YES
873 | birthdayLabel
874 | birthdayTextField
875 | emailLabel
876 | emailTextField
877 | genderLabel
878 | genderTextField
879 | lastNameTextField
880 | nameTextField
881 | passwordLabel
882 | passwordTextField
883 | phoneLabel
884 | phoneTextField
885 | photoButton
886 | termsTextView
887 |
888 |
889 | YES
890 |
891 | birthdayLabel
892 | UILabel
893 |
894 |
895 | birthdayTextField
896 | UITextField
897 |
898 |
899 | emailLabel
900 | UILabel
901 |
902 |
903 | emailTextField
904 | UITextField
905 |
906 |
907 | genderLabel
908 | UILabel
909 |
910 |
911 | genderTextField
912 | UITextField
913 |
914 |
915 | lastNameTextField
916 | UITextField
917 |
918 |
919 | nameTextField
920 | UITextField
921 |
922 |
923 | passwordLabel
924 | UILabel
925 |
926 |
927 | passwordTextField
928 | UITextField
929 |
930 |
931 | phoneLabel
932 | UILabel
933 |
934 |
935 | phoneTextField
936 | UITextField
937 |
938 |
939 | photoButton
940 | UIButton
941 |
942 |
943 | termsTextView
944 | UITextView
945 |
946 |
947 |
948 |
949 | IBProjectSource
950 | ./Classes/DBSignupViewController.h
951 |
952 |
953 |
954 |
955 | 0
956 | IBCocoaTouchFramework
957 |
958 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
959 |
960 |
961 | YES
962 | 3
963 |
964 | background.png
965 | {301, 325}
966 |
967 | 534
968 |
969 |
970 |
--------------------------------------------------------------------------------