อีกครั้งกับ entry ง่ายๆ สำหรับผู้เริ่มต้นด้วยการใช้ Tab bar ใน iPhone, iPad
การใช้ Tab Bar ถือเป็นวิธีการหลักอันหนึ่ง ที่มักถูกเลือกมาใช้ช่วยในการจัดกลุ่ม content ของโปรแกรมออกเป็นกลุ่ม ซึ่งพบเห็นได้ทั่วไปในโปแกรมหลักๆ บน iPhone
Related Link from Roti
การใช้ Tab Bar ถือเป็นวิธีการหลักอันหนึ่ง ที่มักถูกเลือกมาใช้ช่วยในการจัดกลุ่ม content ของโปรแกรมออกเป็นกลุ่ม ซึ่งพบเห็นได้ทั่วไปในโปแกรมหลักๆ บน iPhone
เราจะใช้ UITabBarController ในการสร้าง Tab Bar ขึ้นมาใช้งาน ซึ่งใจความหลักแล้ว UITabBarController จะเก็บ Array ของ view controller และแสดงมันออกมานั่นเอง หรือให้มองว่ามันเป็น Array ของ View Controller ไปเลยก็ได้เหมือนกัน
หากเราเป็น reference ของ UIViewController ดูแล้วจะพบว่ามันมี property ชื่อ tabBarItem ให้เราด้วย ซึ่งนั่นทำให้เราพอจะมีขั้นตอนการสร้าง Tab Bar ขึ้นมาใช้งานในโปแกรมของเราได้คร่าวๆดังนี้
- สร้าง UIViewController มากกว่า 1 อัน และเก็บมันลงใน Array สำหรับนำมาใส่ใน UITabBarController
- กำหนด tab bar item ให้กับ UIViewController แต่ละอัน (ขั้นตอนนี้ไม่จำเป็นต้องทำก็ได้ แต่ควรทำ)
- สร้าง UI TabBarController และกำหนด viewControllers ให้กับมันด้วยการนำ Array ของ UIViewController มากำหนดค่าให้
เริ่มจากสร้าง UIViewController และกำหนด UITabBarItem ให้
UIViewController *firstViewController = [[UIViewController alloc] init];
firstViewController.view.backgroundColor = [UIColor redColor];
UITabBarItem *firstTabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem: UITabBarSystemItemFeatured tag: 0];
firstViewController.tabBarItem = firstTabBarItem;
จากนั้นสร้าง UIViewController อันอื่นๆ เพิ่มอีกในลักษณะเดียวกัน (ตามตัวอย่างจะสร้าง secondViewController และ thirdViewController เพิ่มขึ้นมา) และนำมาเก็บลงไปใน NSArray ดังนี้
NSArray *viewArray = [[NSArray alloc] initWithObjects:
firstViewController,
secondViewController,
thirdViewController,
nil];
สร้าง UITabBarController ขึ้นมา และกำหนด viewArray ที่เราได้สร้างขึ้นให้กับมัน พร้อมทั้งใส่ tab bar ลงไปใน window
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = viewArray;
[window addSubview: tabBarController.view];
เท่านี้ก็เรียบร้อย
จะเห็นได้ว่าหากเราจะสร้าง Tab Bar ขึ้นมาใช้เอง เราไม่จำเป็นต้องพึ่ง Interface Builder (IB) ช่วยเลยแม้แต่น้อย ซึ่งสำหรับบางคนหากมองว่าการใช้ IB ช่วยมันซับซ้อนก็อาจใช้วิธีนี้แทนก็ได้ และใช้ IBแค่การ design content ใน view เป็นหลักอย่างเดียวเลยก็ได้
