Programming with Segue
Dynamic design through coding
Views and its Co-ordinates
Core animations
Picture pickers
Sound manager
Address book picker
- Hussain KMR Behestee
6. Programming with Segue
Life Cycle of Segue
∗ Your app never creates segue objects directly, they are always created on
your behalf by iOS when a segue is triggered.
∗ The destination controller is created and initialized.
∗ The segue object is created and its initWithIdentifier:source:destination:
method is called. The identifier is the unique string you provided for the
segue in Interface Builder, and the two other parameters represent the
two controller objects in the transition.
∗ The source view controller’s prepareForSegue:sender: method is called.
∗ The segue object’s perform method is called. This method performs a
transition to bring the destination view controller on-screen.
∗ The reference to the segue object is released, causing it to be
deallocated.
7. Programming with Segue
Triggering a segue programmatically
- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation deviceOrientation =
[UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
!isShowingLandscapeView)
{
[self performSegueWithIdentifier:@"DisplayAlternateView" sender:self];
isShowingLandscapeView = YES;
}
}
12. Core animations
∗ Image Based Animation
∗ create the view that will execute our animation
UIImageView* campFireView = [[UIImageView alloc]
initWithFrame:self.view.frame];
∗ load all the frames of our animation
campFireView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"campFire01.gif"],
[UIImage imageNamed:@"campFire02.gif"], nil];
campFireView.animationDuration = 1.75;
∗ repeat the annimation forever
campFireView.animationRepeatCount = 0;
∗ start animating
[campFireView startAnimating];
∗ add the animation view to the main window
[self.view addSubview:campFireView];
13. Picture pickers
Initialization..
∗ Initialize the Image Picker and set delegate for interaction
picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
∗ Checking and setting Source type
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
} else{
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
∗ Call the picker to front
[self presentViewController:picker animated:YES completion:NULL];
14. Picture pickers
Grabbing the image
∗ If the user cancels we just dismiss the picker and release the object
- (void)imagePickerControllerDidCancel:(UIImagePickerController *) Picker
{
[[picker presentingViewController] dismissViewControllerAnimated:YES
completion:NULL];
}
∗ But if the user selects an image or takes a photo with the camera
(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info{
{
selectedImage.image = [info
objectForKey:UIImagePickerControllerOriginalImage];
[[picker presentingViewController] dismissViewControllerAnimated:YES
completion:NULL];
}
∗ For more information
15. Sound manager
∗ Get the main bundle for the app
CFBundleRef mainBundle = CFBundleGetMainBundle ();
∗ Get the URL to the sound file to play
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL ( mainBundle,
CFSTR ("tap"), CFSTR ("aif"), NULL);
∗ Create a system sound object representing the sound file
SystemSoundID soundFileObject;
AudioServicesCreateSystemSoundID (soundFileURLRef,
&soundFileObject);
16. Sound manager
∗ For System Sound Play
AudioServicesPlaySystemSound (soundFileObject);
∗ For Alert Sound Play
AudioServicesPlayAlertSound (soundFileObject);
∗ For Vibrate Play
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);