Tuesday 29 March 2011

Tabbar Controller

In this post we will have a look at UITabBarController, there is also a class called as the UITabbar but mostly I prefer UITabBarController, TabbarController is used to control the Tabbar view and is mostly used to switch from one view to the other view.

Design Phase: In this post I am having two views one is a label view and the other is a table view, here’s how the final output will look like.



Step 1: In some of my earlier post I have explained how to show a simple label and a table so you can refer them if you like.

Step 2: For this tabbar application we will require two views so you can have the firstview as the subclass of the UIViewController which will be for the label and your second view will be the subclass of the UITableViewController which will be for the table . Make the settings for both the views by referring my earlier posts .

Step 3: Now go to the AppDelegate.m file and import both the viewControllers and create the object of both the viewControllers.

#import "TabbarDemoAppDelegate.h"
#import "firstviewController.h"
#import "secondviewController.h"

@implementation TabbarDemoAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(UIApplication *)application {

// Override point for customization after application launch
firstviewController *firstVC = [[firstviewController alloc]init];
secondviewController *secondVC = [[secondviewController alloc]initWithStyle:UITableViewStylePlain];
NSArray *objectList = [[NSArray alloc]initWithObjects:firstVC,secondVC,nil];
UITabBarController *tabbarC = [[UITabBarController alloc]init];
tabbarC.viewControllers = objectList;
[window addSubview:tabbarC.view];

[window makeKeyAndVisible];
}



Code Explanation:

Now the best part about TabbarController is that it has a viewController property, which takes the array of the viewController objects.

So I have took an NSArray and added the objects of the viewController to it and ultimately using the viewController property of the UITabbarController I have supplied the data of the views that will be appearing on the tabbar

so once you have done this now you can add the tabbarController view to the window as all the information about the view is contained in the tabbarcontroller object and then press build and go to get the following output.



BitCode hopes that this post has helped you in clearing your concepts regarding the view and view controllers. You can post your queries at bitcode.pune@gmail.com for any technical assistance.

switch control

In this post I will demonstrate on how to use a switch control, The switch control is just like a switch with an on and off text and one more thing you have to keep in mind before we proceed and that is the width and height of the switch will always be 94 and 27 not more than that, so let's begin

Design Phase: In this scenario when the switch displays off the label text must also change to off and when it displays on the label text must display on pretty simple right

Step 1: Open Xcode and create a window based or a view based application and give it an appropriate name, I normally am a faculty and I give the name of my projects like the control name and with the prefix demo. The name of this project that I gave was SwitchDemo. For designing we need a label and a switch control and a function with the help of which we will change the text of the label.

Step 2: Now add a UIViewController subclass file to your project and give it the name swithcdemoviewController. Select the .h file and add this piece of code to your project

@interface switchdemoviewController : UIViewController {
UILabel *lbl;
UISwitch *objSwitch;

}
-(void)changeLabelText;

@end

Now go to the .m file of the switchdemoviewController and select its init method where you will set the frame of both label and the UISwitch object here's how you will do that

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
lbl = [[UILabel alloc]initWithFrame:CGRectMake(86, 199, 202, 21)];
lbl.text = @"Default Text";
objSwitch = [[UISwitch alloc]initWithFrame:CGRectMake(80, 122, 94, 27)];
[objSwitch addTarget:self action:@selector(changeLabelText) forControlEvents:UIControlEventValueChanged];
}
return self;
}

Into the loadView method add these objects to your view

- (void)loadView {
[super loadView];
[self.view addSubview:objSwitch];
[self.view addSubview:lbl];
}

Step 3: In this step we will give body to our function named chanegLabelText wich looks like this

-(void)changeLabelText
{
if(objSwitch.on)
{
lbl.text = @"The switch is on";
}
else
{
lbl.text = @"The Switch is off";
}
}

In the above code I have just checked a condition whether the switch is on or not and if it is on then change the label text to on else change the label text to off, all this is being done with the help of the property that the switch control has named on.

Step 4: Add this view (switchdemoviewController) to your window for that select the AppDelegate.m file of your project, my code looks like this

#import "SwitchDemoAppDelegate.h"
#import "switchdemoviewController.h"

@implementation SwitchDemoAppDelegate

@synthesize window;


- (void)applicationDidFinishLaunching:(UIApplication *)application {

// Override point for customization after application launch
switchdemoviewController *switchdemoVC = [[switchdemoviewController alloc]init];
[window addSubview:switchdemoVC.view];
[window makeKeyAndVisible];
}

Step 5: Build and Go means run the application you are all done, you will get the following output



BitCode hopes that this post has helped you in clearing your concepts regarding the view and view controllers. You can post your queries at bitcode.pune@gmail.com for any technical assistance.
In this post I will demonstrate on how to use a slider control.

Overview: In this post we will change the value of text as per the value of the slider,

Step 1: Open Xcode and create a window based or a view based project and add two UIViewController subclass give an appropriate name to the file and select the .h file of the viewController subclass and add this piece of code. The name of my viewcontroller class is sliderviewController.

#import


@interface sliderviewController : UIViewController {

UILabel *mylabel;
UISlider *slider;
}
-(void)changeLabelText;

@end

in the above code you can see that I have made the objects of the label and slider also I have made a function called changeLabelText which will be called by the slider

Step 2: In this step we will go to the .m file of sliderviewController and perform some settings like setting the frame and text for the label and slider control into the init method here's how we do that

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
mylabel = [[UILabel alloc]initWithFrame:CGRectMake(117, 139, 93, 21)];
mylabel.text = @"Default text";
slider = [[UISlider alloc]initWithFrame:CGRectMake(30, 201, 252, 22)];
slider.maximumValue = 100;
slider.minimumValue = 1;
[slider addTarget:self action:@selector(changeLabelText) forControlEvents:UIControlEventValueChanged];
}
return self;
}

In the above code for the slider control I have set the max and min value properties by default the min value is zero and max value is one. Now into the loadView method add these views to your current view

- (void)loadView {
[super loadView];
[self.view addSubview:mylabel];
[self.view addSubview:slider];
}

Step 3: Now coming to our function named changeLabelText, here's how it looks

-(void)changeLabelText
{
mylabel.text = [NSString stringWithFormat:@"%.f",slider.value];
}

In the above code I have changed the text of the label as per the value of the slider since the value of the slider is a float value so I have used %.f in order to avoid the decimal part.

Step 4: In this step you have to select the AppDelegate.m file of your project and add this viewController subclass to your iPhone window, here's how its done

#import "SliderDemoAppDelegate.h"
#import "sliderviewController.h"

@implementation SliderDemoAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(UIApplication *)application {

// Override point for customization after application launch
sliderviewController *sliderVC = [[sliderviewController alloc]init];
[window addSubview:sliderVC.view];
[window makeKeyAndVisible];
}

Step 5: Build and Go that means Run the application and you are done you will get the following output.





BitCode hopes that this post has helped you in clearing your concepts regarding the view and view controllers. You can post your queries at bitcode.pune@gmail.com for any technical assistance.