Want a Passcode view for your iPhone/iPod project ? Here's how to add a PTPasscodeViewController on your project with a few lines of code.
- Copy PTPasscodeViewController.m and PTPasscodeViewController.h files to your source tree and add it to XCode project.
- Import "PTPasscodeViewController.h" from your code.
- Implement PTPasscodeViewControllerDelegate protocol.
Just #import the PTPasscodeViewController.h header
#import "PTPasscodeViewController.h"
Simple example of how to create PTPasscodeViewController:
PTPasscodeViewController *passcodeViewController = [[PTPasscodeViewController alloc] initWithDelegate:self];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:passcodeViewController];
[self setNavigationController:navController];
[window addSubview:[navController view]];
[window makeKeyAndVisible];
[window release];
[navController release];
Your class will have to implement the PTPasscodeViewControllerDelegate protocol, and to implement the didShowPasscodePanel:panelView:
, shouldChangePasscode:panelView:passCode:lastNumber:
and didEndPasscodeEditing:panelView:passCode:
methods from this protocol:
- (void)didShowPasscodePanel:(PTPasscodeViewController *)passcodeViewController panelView:(UIView*)panelView
{
[passcodeViewController setTitle:@"Set Passcode"];
if([panelView tag] == kPasscodePanelOne) {
[[passcodeViewController titleLabel] setText:@"Enter a passcode"];
}
if([panelView tag] == kPasscodePanelTwo) {
[[passcodeViewController titleLabel] setText:@"Re-enter your passcode"];
}
if([panelView tag] == kPasscodePanelThree) {
[[passcodeViewController titleLabel] setText:@"Panel 3"];
}
}
- (BOOL)shouldChangePasscode:(PTPasscodeViewController *)passcodeViewController panelView:(UIView*)panelView passCode:(NSUInteger)passCode lastNumber:(NSInteger)lastNumber;
{
// Clear summary text
[[passcodeViewController summaryLabel] setText:@""];
return TRUE;
}
- (BOOL)didEndPasscodeEditing:(PTPasscodeViewController *)passcodeViewController panelView:(UIView*)panelView passCode:(NSUInteger)passCode
{
NSLog(@"END PASSCODE - %d", passCode);
if([panelView tag] == kPasscodePanelOne) {
_passCode = passCode;
return ![passcodeViewController nextPanel];
}
if([panelView tag] == kPasscodePanelTwo) {
_retryPassCode = passCode;
if(_retryPassCode != _passCode) {
[passcodeViewController prevPanel];
[[passcodeViewController summaryLabel] setText:@"Passcode did not match. Try again."];
return FALSE;
} else {
[[passcodeViewController summaryLabel] setText:@"Good boy !"];
}
}
return TRUE;
}
-(id)initWithDelegate:(id)delegate
Initializes a PTPasscodeViewController.
UILabel *titleLabel
The label used for the Passcode title.
UILabel *summaryLabel
The label used to show a summary text of the Passcode.
- (void)clearPanel
Reset current panel passcode view.
-(BOOL)prevPanel
Switch to the previous passcode panel.
-(BOOL)nextPanel
Switch to the next passcode panel.