-
Notifications
You must be signed in to change notification settings - Fork 1
DD 4.9. Utilizing the UITableViewController for Easy Creation of Table Views
Use the UITableViewController view controller, which by default comes with a table view controller.
The iOS SDK contains a really handy class called UITableViewController that comes predefined with a table view instance inside it. In order to take advantage of this class, all you have to really do is create a new class that subclasses the aforementioned class. Here, I will walk you through the steps necessary to create a new Xcode project that utilizes the table view controller: Empty Ap‐ plication template.
In the implementation file of your app delegate, remember to import this view controller’s header file and then create an instance of this class and set it as the root view controller of your application, as shown here:
#import "AppDelegate.h" #import "ViewController.h" @implementation AppDelegate - (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ ViewController *controller = [[ViewController alloc] initWithStyle:UITableViewStylePlain]; self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = controller; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; }
Now let’s go into the implementation of our table view controller and make sure that we have an array of strings (just as an example) that we can feed into our table view:
#import "ViewController.h" static NSString *CellIdentifier = @"Cell"; @interface ViewController () @property (nonatomic, strong) NSArray *allItems; @end @implementation ViewController - (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { // Custom initialization self.allItems = @[ @"Anthony Robbins", @"Steven Paul Jobs", @"Paul Gilbert", @"Yngwie Malmsteen" ]; [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier]; } return self; } - (void) viewDidLoad{ [super viewDidLoad]; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.allItems.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.textLabel.text = self.allItems[indexPath.row]; return cell; } @end