Codesnipp.it Social Code Sharing

Amber Weinberg

iPhone App Template w/ Multiple Button Types, Custom Alert & Action Sheet

by Amber Weinberg on Jul 05, 2010

// From Beginning iPhone 3 Development" book by Dave Mark and Jeff LaMarche /* This app comes equipped with several buttons, sliders and fields. The name button populates the alert The slider changes the number to the left The half buttons switches between 2 toggle switches and 1 large button. The button has been customized with extra code and implement's Apple's standard pretty button The large button pops up an action sheet, then an alert. All of these are already programmed for you, you just need to connect it to your interface!*/ /*In your ViewController.m file*/ // // _4_Control_FunViewController.h // 04 Control Fun // // Created by Amber Weinberg on 6/11/10. // Copyright __MyCompanyName__ 2010. All rights reserved. // #import <UIKit/UIKit.h> #define kSwitchesSegmentIndex 0 @interface _4_Control_FunViewController : UIViewController <UIActionSheetDelegate> { UITextField *nameField; UITextField *numberField; UILabel *sliderLabel; UISwitch *leftSwitch; UISwitch *rightSwitch; UIButton *doSomethingButton; } @property (nonatomic, retain) IBOutlet UITextField *nameField; @property (nonatomic, retain) IBOutlet UITextField *numberField; @property (nonatomic, retain) IBOutlet UILabel *sliderLabel; @property (nonatomic, retain) IBOutlet UISwitch *leftSwitch; @property (nonatomic, retain) IBOutlet UISwitch *rightSwitch; @property (nonatomic, retain) IBOutlet UIButton *doSomethingButton; - (IBAction)textFieldDoneEditing:(id)sender; - (IBAction)backgroundTap:(id)sender; - (IBAction)sliderChanged:(id)sender; - (IBAction)toggleControls:(id)sender; - (IBAction)switchChanged:(id)sender; - (IBAction)buttonPressed; @end /*In your ViewController.m file // // _4_Control_FunViewController.m // 04 Control Fun // // Created by Amber Weinberg on 6/11/10. // Copyright __MyCompanyName__ 2010. All rights reserved. // #import "_4_Control_FunViewController.h" @implementation _4_Control_FunViewController @synthesize nameField; @synthesize numberField; @synthesize sliderLabel; @synthesize leftSwitch; @synthesize rightSwitch; @synthesize doSomethingButton; - (IBAction)toggleControls:(id)sender { if ([sender selectedSegmentIndex] == kSwitchesSegmentIndex) { leftSwitch.hidden = NO; rightSwitch.hidden = NO; doSomethingButton.hidden = YES; } else { leftSwitch.hidden = YES; rightSwitch.hidden = YES; doSomethingButton.hidden = NO; } } - (IBAction)switchChanged:(id)sender { UISwitch *whichSwitch = (UISwitch *)sender; BOOL setting = whichSwitch.isOn; [leftSwitch setOn:setting animated:YES]; [rightSwitch setOn:setting animated:YES]; } - (IBAction)buttonPressed { UIActionSheet *actionSheet =[[UIActionSheet alloc] initWithTitle:@"Are you sure?" delegate:self cancelButtonTitle:@"No Way!" destructiveButtonTitle:@"Yes, I'm Sure!" otherButtonTitles:nil]; [actionSheet showInView:self.view]; [actionSheet release]; } - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex != [actionSheet cancelButtonIndex]) { NSString *msg = nil; if (nameField.text.length > 0) msg = [[NSString alloc] initWithFormat: @"You can breathe easy, %@, everything is ok.", nameField.text]; else msg = @"You can breathe easy, everything went ok."; UIAlertView *alert =[[UIAlertView alloc] initWithTitle:@"Something was done" message:msg delegate:self cancelButtonTitle:@"Phew!" otherButtonTitles:nil]; [alert show]; [alert release]; [msg release]; } } - (void)viewDidLoad { UIImage *buttonImageNormal = [UIImage imageNamed:@"whiteButton.png"]; UIImage *stretchableButtonImageNormal = [buttonImageNormal stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [doSomethingButton setBackgroundImage:stretchableButtonImageNormal forState:UIControlStateNormal]; UIImage *buttonImagePressed = [UIImage imageNamed:@"blueButton.png"]; UIImage *stretchableButtonImagePressed = [buttonImagePressed stretchableImageWithLeftCapWidth:12 topCapHeight:0]; [doSomethingButton setBackgroundImage:stretchableButtonImagePressed forState:UIControlStateHighlighted]; } - (IBAction)sliderChanged:(id)sender { UISlider *slider = (UISlider *)sender; int progressAsInt = (int)(slider.value + 0.5f); NSString *newText = [[NSString alloc] initWithFormat:@"%d", progressAsInt]; sliderLabel.text = newText; [newText release]; } - (IBAction)backgroundTap:(id)sender { [nameField resignFirstResponder]; [numberField resignFirstResponder]; } - (IBAction)textFieldDoneEditing:(id)sender{ [sender resignFirstResponder]; } - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { self.nameField = nil; self.numberField = nil; self.sliderLabel = nil; self.leftSwitch = nil; self.rightSwitch = nil; self.doSomethingButton = nil; [super viewDidUnload]; } - (void)dealloc { [nameField release]; [numberField release]; [sliderLabel release]; [leftSwitch release]; [rightSwitch release]; [doSomethingButton release]; [super dealloc]; } @end

Can't see the comments? Please login first :)