Introduction of Table View
A table view has only one column and allow vertical scrolling only. It consists of rows in sections. Programmatically, the UIKit framework identifies rows and sections through their index number:
Sections are number 0 through n-1 from the top of a table view of the bottom; Rows are numbered 0 through n-1 within a section.
In this tutorial, you are going to create an Application of Table View listing apple devices names like 'Contacts' App in iPhone / iPad.
Follow below Steps to create Table View Project using Objective-C Language:
Step 1: Launch Xcode and create new project by clicking on Single View Application template under iOS tab as shown in below image and click Next button.
Step 2: Enter product name as TableViewDemo and select Language as Objective-C then again click on Next button as shown in below image. Later click on Create button to create project on the next pop-up window.
Step 3: On your project, just go to main.storyboard file available in the project navigator, in storyboard canvas, select the View Controller so that it is highlighted in blue colour and hit delete button to remove the controller.
Step 4: Further, search Table View Controller in Object Library on the right-bottom side. Drag and drop that controller using Ctrl button and place it onto the storyboard.
Also make sure that you have checked “Is Initial View Controller” from Attributes Inspector to give initial entry point to the controller.
Step 5: Creating Class for TableViewController
Now, you need to make a class for Table View Controller and its superclass should be UITableViewController as can be seen in given image. To create new class, select Xcode File -> New -> File… menu option.
select the Cocoa Touch Class and click on Next.
After clicking on Next, enter class name as TableViewController and make sure its subclass is UITableViewController as said earlier too, click on Next and create button.
Also, associate the class with the your Table View Controller. By selecting Table View Controller from main.storyboard and select ‘Identity Inspector’ from right hand side as mentioned below.
Now, there is no need of ViewController class files i.e. ViewController.h & ViewController.m showing in project Navigator. Hence you can delete both the files.
Step 6: Coding for Table View Controller
Select TableViewController.h file & add following protocols just after the subclass as mentioned in below image:
- UITableViewDataSource
- UITableViewDelegate
Next, select TableViewController.m file, there you will find below mandatory methods to build Table:
- numberOfSectionsInTableView
- numberOfRowsInSection
- cellForRowAtIndexPath
In 1st method, you need to return 1 because we are taking only one section in our case.
In 2nd method, you need to return number of Rows in one section which you want to display in each cell.
In 3rd method, you need to return cell after creating its variable within that method and further call array (contains number of items) to display using indexPath.row property.
Furthermore, you need to declare an array & define it in viewDidLoad() method.
In our case, we declared array name “devices” using NSArray class in block of interface.
NSArray *devices;
And gave definition in viewDidLoad() method within the block of implementation.
devices = @[@"iPhone",@"iPad",@"iPod",@"iMac",@"iWatch", @"iTV"];
Now, its time to code for protocol methods discussed above.
In numberOfRowsInSection() method, you need to return “devices.count” which means returning number of items present in our array.
Most importantly, uncomment cellForRowAtIndexPath() method and in place of reuseidentifier, write @“Cell” . This “Cell” is the name of cell identifier need to set by selecting cell in table view from Storyboard and type cell in identifier option under Attribute Inspector on left side.
Array will be called and assign it to cell.textLabel.text to display in TableView.
Setting Up Identifier name to cell in below image.
You are Ready with your TableView. Just Run the program & will be seen below result in simulator.
In above result, there is some clashing with the 1st cell and signal. To remove this you can embed Navigation Controller but firstly select your existing controller i.e. Table View Controller then follow below steps.
For this just go to Xcode Menu Bar ‘Editor’ -> Embed In -> choose ‘Navigation Controller’. That’s it
Again Run the project, here is the result with the Navigation Controller.
In case of any doubt or confusion, comment below.
As I am a beginner so its very helpful to me. Thanks to share this. Kindly share more ideas on this...plz
ReplyDeleteFor sure I will share more tutorials for you & very helpful for beginners !
DeleteI was looking for this table view. thanks for this tutorial with nice screenshots which is very helpful to follow.
ReplyDeleteAlways happy to help you all !
Deleteyou have skills to convey..it's really helpful.. please start the series to learn step by step objective c in xcode. atleast cover the basic concepts. As i am a beginner so please upload a video on..i have required 3 buttons in one view.. and also 3 table views in that.. if i click to 2nd button the view should change..as for also third button.. please upload a video on this query.. thanks for advance.. very welldone.. (Y)
ReplyDeleteThank you Ayesha Nazir for your comment !
DeleteHappy to hear that its helpful...as per your requirement I will definitely upload more videos as soon as possible and also cover the basic concepts. As you are a beginner, just stick to my update blogs and videos on my channel and follow accordingly.
Kindly clarify your app requirement in brief so that I will facilitate the same soon.
If you want to send mail for your requirement in brief, send it on mukeshkrm89@gmail.com.
thanks a lot.. i'll definitely follow.. as you have explained, i beleive..it will be very helpful for all..!!!
ReplyDeleteAnd here is the link of my requirement, additions can be in further the passage of time but the minimum requirement is..you can check:
https://horn-mad-lubricants.000webhostapp.com/#/screens/d12245cc-1680-458d-89dd-4f0d7fb22724
Pleasure of mine Ayesha !
DeleteI have visited your link of your requirement, I wanna clear you one thing that its not at all related to Table View. It is mainly a simple UI where TextFields, Labels and buttons is used on view.
Before going to learn about this UI, you should learn about Auto Layout first...so for that I will upload video on the same.