ARTICLE

Customize Setting App in iPhone

Posted by Sachin Bhardwaj Articles | iPhone/iPad December 12, 2012
In this article I will create an iPhone Setting app which is very similar to the original iPhone setting app in the iPhone.
Reader Level:
Download Files:
 

Introduction

In this article I will create a Single view application. Here I use a Setting Button in the first view; when we click on the setting button it goes to the second view. In the second view I use a table view controller and on the table view cell I use an Image view, label, UITableViewCellAccessoryDisclosureIndicator and UITableViewCellAccessoryCheckmark. It is a best example of UIView in the iPhone.

To understand it we use the following.

Step 1

Open XCode by double-clicking on it. 

Step 2

Create a New XCode Project by clicking on it.

Step 3

Now Select Single View Application and click on Next. 

Step 4

Now provide your Product Name.

Step 5

Select the location where you want to save your project and click on Create. 

Step 6

Now we write code:

MCNViewController.h

//
// MCNViewController.h
// Setting app in iphone
//
// Created by Sachin Bhardwaj on 01/12/12.
// Copyright (c) 2012 Sachin Bhardwaj. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface MCNViewController : UIViewController
{
IBOutlet UIButton *settingbtn;
}
@property IBOutlet UIButton *settingbtn;

-(IBAction)click;

@end

MCNViewController.m

//
//  MCNViewController.m
//  Setting app in iphone
//
//  Created by Sachin Bhardwaj on 01/12/12.
//  Copyright (c) 2012 Sachin Bhardwaj. All rights reserved.
//

#import "MCNViewController.h"
#import "SettingViewController.h"

@interface MCNViewController ()

@end

@implementation MCNViewController
@synthesize settingbtn;

-(IBAction)click
{
   
   
    SettingViewController *setting = [[SettingViewController alloc ]init];
    [self.navigationController pushViewController:setting animated:YES];
   
}

- (void)viewDidLoad
{
    [super viewDidLoad];
      self.title = @"Setting";
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
 

SettingViewController.h
//
// SettingViewController.h
// Setting app in iphone
//
// Created by Sachin Bhardwaj on 03/12/12.
// Copyright (c) 2012 Sachin Bhardwaj. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface SettingViewController : UITableViewController
{

IBOutlet UILabel *lbl1,*lbl2;
IBOutlet UIImageView *img1;


}

@property(nonatomic,strong)IBOutlet UILabel *lbl1;
@property(nonatomic,strong)IBOutlet UIImageView *img1;
@property (nonatomic, retain) NSMutableArray *arrCategories;
@property (nonatomic, retain) NSMutableArray *arrimages;

@end

SettingViewController.m

//
//  SettingViewController.m
//  Setting app in iphone
//
//  Created by Sachin Bhardwaj on 03/12/12.
//  Copyright (c) 2012 Sachin Bhardwaj. All rights reserved.
//

#import "SettingViewController.h"
#import "MobileCoreServices/MobileCoreServices.h"

@interface SettingViewController ()

@end

@implementation SettingViewController
@synthesize lbl1;
@synthesize img1;
@synthesize arrCategories,arrimages;


- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
   
    self.arrCategories = [[NSMutableArray alloc]
                          initWithObjects:@"General", @"You Tube",
                          @"Safari", @"Photos", nil];
    self.arrimages = [[NSMutableArray alloc]
                      initWithObjects:@"images.jpeg", @"image123.png",
                      @"images (2).jpeg", @"images (3).jpeg", nil];
   
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
   
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section ==0) {
        return 1;
    }
    else{
        return 4;
    }
    return YES;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    if (indexPath.section == 0) {
       
        cell.textLabel.text = @"Location Services";
        cell.imageView.image = [UIImage imageNamed:@"images (4).jpeg"];
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
       
       
    }
   
    if (indexPath.section == 1)  {
 
       
        cell.imageView.image = [UIImage imageNamed:[arrimages objectAtIndex: indexPath.row]];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
       
        NSString *Categories = [self.arrCategories
                                objectAtIndex: [indexPath row]];
        cell.textLabel.text = Categories;
        // Configure the cell...
    }
   
    return cell;
}

/*
 // Override to support conditional editing of the table view.
 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
 {
 // Return NO if you do not want the specified item to be editable.
 return YES;
 }
 */

/*
 // Override to support editing the table view.
 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
 {
 if (editingStyle == UITableViewCellEditingStyleDelete) {
 // Delete the row from the data source
 [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
 }
 else if (editingStyle == UITableViewCellEditingStyleInsert) {
 // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
 }
 }
 */

/*
 // Override to support rearranging the table view.
 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
 {
 }
 */

/*
 // Override to support conditional rearranging of the table view.
 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
 {
 // Return NO if you do not want the item to be re-orderable.
 return YES;
 }
 */

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0) {
       
        UIApplication *ourApplication = [UIApplication sharedApplication];
        NSString *ourPath = @"http://maps.google.com/maps?ll=-37.812022,144.969277";
        NSURL *ourURL = [NSURL URLWithString:ourPath];
        [ourApplication openURL:ourURL];
       
       
    }

    if (indexPath.row==3)
   {
    if ([UIImagePickerController isSourceTypeAvailable:
         UIImagePickerControllerSourceTypeSavedPhotosAlbum])
    {
        UIImagePickerController *imagePicker =
        [[UIImagePickerController alloc] init];
        imagePicker.delegate = self;
        imagePicker.sourceType =
        UIImagePickerControllerSourceTypePhotoLibrary;
        imagePicker.mediaTypes = [NSArray arrayWithObjects:
                                  (NSString *) kUTTypeImage,
                                  nil];
        imagePicker.allowsEditing = NO;
        [self presentModalViewController:imagePicker animated:YES];
    }
   }
    else if (indexPath.row==2)
    {
        UIApplication *ourApplication = [UIApplication sharedApplication];
        NSString *ourPath = @"http://www.google.com";
        NSURL *ourURL = [NSURL URLWithString:ourPath];
        [ourApplication openURL:ourURL];
   
    }
    else if (indexPath.row==1)
    {
        UIApplication *ourApplication = [UIApplication sharedApplication];
        NSString *ourPath = @"http://www.youtube.com/watch?v=TFFkK2SmPg4";
        NSURL *ourURL = [NSURL URLWithString:ourPath];
        [ourApplication openURL:ourURL];
       
    }

}


@end

Step 7

Finally we click on the run button to show the output.

Step 8

Output 1 in iPhone:

output1-in-iphone.jpg

Output 2 in iPhone:

output2-in-iphone.jpg

Output 3 in iPhone:

output3-in-iPhone.jpg

Output 4 in iPhone:

output4-in-iphone.jpg

Output 5 in iPhone:

output5-in-iphone.jpg

Output 6 in iPhone:

output6-in-iphone.jpg

Output 7 in iPhone:

output7-in-iphone.jpg

Output 8 in iPhone:

output8-in-iphone.jpg

 

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter