Creating User Interface for Settings Screen (SettingsViewController)

Create user interface for SettingsViewController using Interface Builder.

For the SettingsViewController, implement the following code:
    /* Set the title of navigation controller  */
        self.title=@"Settings"; 

    /* By default the color of navigation controller bar is blue. To make it black translucent color:*/              
        [self.navigationController.navigationBar setTranslucent:YES];      
        [self.navigationController.navigationBar setTintColor:[UIColor blackColor]];

    /* To add Right bar button (Log In) in navigation controller programmatically, use the following code*/
        UIBarButtonItem *l_loginButton = [[UIBarButtonItem alloc] initWithTitle:@"Log In"                                                              
           style:UIBarButtonItemStyleBordered                                                               
           target:self                                                                
           action:@selector(loginbuttonClickHandler:)];

           [self.navigationItem setRightBarButtonItem:l_loginButton animated:YES];
           [l_loginButton release];

    /* To add Left bar button (Cancel) in navigation controller programmatically, use the following code*/
        UIBarButtonItem *l_cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel"                                                              
           style:UIBarButtonItemStyleBordered                                                               
           target:self                                                                
           action:@selector(cancelbuttonClickHandler:)];

           [self.navigationItem setRightBarButtonItem:l_cancelButton animated:YES];
           [l_cancelButton release];     
 
The application logic used for Login button is:
/* In Login button, click call back */

 /* To create a new secure vault using createVault method. This method also assigns a password which is the appPasscode provided by the user in Settings screen,
    and salt value to the vault. */
    DataVault *l_vault= nil;
       @try { 
        l_vault = [DataVault createVault:VAULT_NAME password:appPasscode salt:SALT_PASSWORD];   

        /*Checks if a vault with the same name already exists. This method throws an exception. A
        newly created vault is in the unlocked state. */

         if ([DataVault vaultExists:VAULT_NAME])          
             {
               NSLog(@"Vault %@ created",VAULT_NAME);   

         ////Register User and after successful registration add below code to store the settings in DataVault    
             
            /* Storing the settings in the vault already created and lock the vault. */ 
               [1_vault setString:@"AppConID" value:appConnID];
               [l_vault setString:@"EnableHttp" value:YES];   
               [l_vault setString:@"Hostname" value:@"10.66.176.121"];              
               [l_vault setString:@"Portnumber" value:@"8000"];
               [l_vault setString:@"Username" value:@"supuser"]; 
               [l_vault setString:@"Password" value:@"s3puser"];
               [l_vault lock];
              }
            }   
            @catch (DataVaultException *exception) {
             NSLog(@"Vault creation failed with error %@",[exception description]);
             if ([DataVault vaultExists:VAULT_NAME])
               {        

                  NSLog(@"Vault  exists before delete vault");               
                  [DataVault deleteVault:VAULT_NAME];                                             

                  NSLog(@"deleted vault %@ successfully",VAULT_NAME);

                }

            }   
For creating a radiobutton (switch), use the UISwitch control:
        /*Inside cellfcellForRowAtIndexPath method of tableview, programmatically add UISwitch in third
        row of first section to determine whether request if HTTP/HTTPS depending on ON/OFF state of
        UISwitch*/ 
        
            /* Initializing switch with frame CGRectZero -- equivalent to CGRectMake(0, 0, 0, 0).*/               U
                ISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];              
                /* Add switch as accessoryView of tableviewcell */              
                   httpEnableCell.accessoryView = switchView;              
                /* Sets the state of Switch whether ON/OFF using bollean parameter */
                   [switchView setOn:[[self.m_propDetailDict objectForKey:[NSString stringWithFormat:@"%i",indexPath.row]]boolValue] animated:NO];              
                /* Add target/action for particular event. The action may optionally include the sender and the
                   event in that order. So whenever switch is tapped, state can be tracked in selector method*/              
                    [switchView addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];            
             `             
                   /* Release the object therefore memory allocated during initialization */
                      [switchView release];   
The application logic used for Cancel button is:
 
/* At first launch of application, when user is not registered, pressing Cancel button will shows an alert message pop-up @"User not registered". 
Once user is registered, then pressing cancel button will push another view controller with list of data (Carriers List in our application). */