วันจันทร์ที่ 8 ตุลาคม พ.ศ. 2555

Xcode Programming XI : Tab Bar Application

กลับมาอีกครั้งครับ หลังจากโดนทาง Apple Update Xcode ไปแล้วมีการเปลี่ยน Syntax บางอย่างเล่นเอามึนๆ ไปเหมือนกันครับ ผมก็จะ Update ตาม Xcode ตัวปัจจุบันนะครับ


  • สร้าง New Project เลือก Tabbed Application


เมื่อสร้าง Project เสร็จแล้วให้ลอง Build & Run ดูก่อนครับ




จะเห็นแบบนี้ครับ

จะสังเกตว่าด้านล่างจะมี Tabbar มาให้แล้ว 2 Tab ด้วยกันและแต่ละ Tab ก็จะมี ViewController ของตัวเอง และเรียกใช้งานจาก delegate

คราวนี้เราก็มาดูว่าจาก ViewController ปกติมีอะไรเปลี่ยนแปลงไปบ้างใน Tabbar Application
  • AppDelegate.h

มีการเปลี่ยนจากการสร้าง Object ของ Class มาเป็นสร้าง Object UITabBarController แทนและมีการเพิ่ม Protocol "UITabBarControllerDelegate"
  • AppDelegate.m


ส่วนนี้ไม่มีอะไรเป็นพิเศษนะครับ แค่เพิ่ม Class with xib File เข้ามา


ส่วนนี้มีหลักการคล้ายกับในบทความเรื่อง NavigationController ครับ

## อธิบาย Code ##

UIViewController *viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];
    
UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];

สร้าง Object ของ UIViewController ทั้งสอง Object โดยอ้างอิง xib

self.tabBarController = [[[UITabBarController alloc] init] autorelease];

สร้าง Object ของ TabBarController

self.tabBarController.viewControllers = @[viewController1, viewController2];

กำหนดจำนวน TabBar โดยมีทั้งหมด 2 View อ้างถึงแต่ละ View ตาม Object ด้านบน

self.window.rootViewController = self.tabBarController;  

กำหนดให้ TabBarController เป็น View เริ่มต้น

[self.window makeKeyAndVisible];

แสดง View ขึ้นมา
  • สังเกต FristViewController.m ครับ

เป็นการตั้งค่า ข้อความและรูปใน Tabbar นั่นเองครับ

NSLocalizedString คือ String สองตัว ตัวแรกทำหน้าที่เป็น Key หรือข้อความ String ปกติที่เราใช้งานครับตัวที่สองเป็น Comment ครับ ในตรงนี้เราสามารถใช้ @"Frist" ไปตรงๆได้เลยครับ

บทความนี้ก็ไม่ได้มีอะไรยากครับ แค่มาแนะนำการใช้งาน TabBar ครับ ส่วนถ้าเราต้องการเพิ่มจำนวน TabBar ก็มีวิธีง่ายๆ ดังนี้ครับ

  • สร้าง New Objective - C Class With xib
  • import ใน Delegate.m แล้วสร้าง Object ของ UIViewController
  • เพิ่มใน self.tabBarController.viewControllers = @[viewController1, viewController2];

สำหรับบทความนี้ก็คงมีแค่นี้ครับผม ^ ^

ไม่มีความคิดเห็น:

แสดงความคิดเห็น