Xcode 4.2 : Storyboard Instantiate ViewController


Xcode 4.2 : Storyboard Instantiate ViewController
การเรียกใช้ ViewController จาก Storyboard

จากที่เราเคยใช้งาน Xcode เวอร์ชั่นก่อนๆ นั้นมาแล้วนะครับ เวลาที่เราจะเปลี่ยนหน้าต่อไปโดยใช้ การสร้างหน้าใหม่ขึ้นมาโดยที่ต้องมี xib ไฟล์ เราจะใช้วิธีการสร้างคลาสไฟล์พร้อมไฟล์ .xib ใช่มั้ยครับ แล้วเวลาเราจะสร้าง object ของหน้า view นั้นก็เรียกใช้ alloc init ได้เลย แต่หากเราเปลี่ยนมาใช้ storyboard แล้วการกระทำแบบเดิมย่อมไม่เกิดผลอะไรในการเปลี่ยนหน้า เนื่องจากเราไม่มี xib ไฟล์นั้นเอง ในบทความนี้จะแนะนำวิธีการเรียกใช้ ViewController ที่เราสร้างขึ้นจาก storyboard มาใช้งาน มาดูกันว่าจะเรียกใช้แบบไหนนะครับ

มีวีดีโอให้ดูด้วยหละ ดูวีดีโอกันก่อนนะ

อธิบายเพิ่มเติม

ฟังก์ชั่น instantiateViewControllerWithIdentifier: ของ storyboard เราต้องเรียกใช้ผ่าน storyboard เท่านั้นนะครับ ตัวอย่าง


[self.storyboard instantiateViewControllerWithIdentifier:@"ใส่ identifier ของ ViewController ของเราที่ต้องเรียกใช้เข้าไป"]

สำคัญ ฟังก์นี้จะรีเทิร์นออกมาเป็น id นะครับ ดังนั้นหากต้องการนำไปใช้เราต้องเปลี่ยนคลาส ให้มันด้วยก่อนเรียกใช้งาน เพราะจะทำให้มองเห็นตัว property ต่างๆ ของคลาสนั้น

ตัวอย่าง หากเราต้องการเปลี่ยนค่า text ของ UILabel ที่ชื่อว่า atext ใน ViewController ของคลาส Page2

เราตั้งชื่อ ViewController ของ Page2 ว่า “page2”


#import "Page2.h"

-(void)goPage2{

Page2 *p2 = (Page2*)[self.storyboard instantiateViewControllerWithIdentifier:@"page2"];

[self presentModalViewController:p2 animated:YES];

//เปลี่ยนค่า atext

p2.atext.text = @"New Text...";

}

จะเห็นได้ว่าเมื่อเราใช้ Xcode 4.2 แล้วเลือก storyboard ด้วยแล้ว จะทำให้วีถีการเรียก ViewController มาใช้งานก็จะแตกต่างกับ Xcode เวอร์ชั่นที่ไม่มี storyboard นะครับ ดังนั้นเราจึงควรเรียกใช้ฟังก์ชั่นให้ถูกต้องด้วยเพื่อทำให้โปรแกรมของเราไม่มีข้อผิดพลาดนะครับ

สำหรับบทความนี้ที่แนะนำเกี่ยวกับฟังก์ชั่นในการเรียกใช้ ViewController จาก storyboard คงทำให้เพื่อนๆ ใช้งาน storyboard ใน Xcode  4.2 คล่องกันมากขึ้นนะครับ หากเพื่อนๆ คนไหนมีข้อสงสัยหรือคำแนะนำก็สามารถคอมเม้นมาได้เช่นเคยนะครับ และตอนนี้เรากำลังจะมีเว็บไซต์เป็นของตัวเองแล้วนะครับ กำลังอยู่ในช่วงจัดทำอยู่ อยู่ที่ http://www.adayd3sign.com และบล็อคที่ http://blog.adayd3sign.com ครับ สำหรับวันนี้ สวัสดีครับ…

Video Related

adaydesign :)

About adaydesign

นักพัฒนาแอพพลิเคชั่นบนโมบาย [iPhone Android] คนหนึ่งซึ่งอยากจะบันทึกเรื่องราวของเส้นทางนักพัฒนาโมบายแอพพลิเคชั่นเอาไว้ในบล็อคน้อยๆ แห่งนี้ เผื่อจะแบ่งบันและแลกเปลี่ยนความรู้ให้กับคนอื่นๆ ได้บ้าง :) Mobile Application Developer; Flash Mobile, iPhone/iPad, Android Mobile Phone/Tablet and Blackberry Playbook.

Posted on ธันวาคม 18, 2011, in [Dev] iOS and tagged , , , . Bookmark the permalink. 1 ความเห็น.

  1. อยากทราบวิธี เปลี่ยนหน้าจากไฟล์ .xib ไป storyboard ครับ ผมลองใช้วิธีนี้
    -(IBAction)btnHome:(id)sender
    {
    FirstViewController*viewType = [[FirstViewController alloc] initWithNibName:nil bundle:nil];
    [self presentViewController:viewType animated:NO completion:NULL];

    }
    พอกดเปลี่ยนมาหน้า storyboard จอจะดำ
    แต่ใช้วิธีเดียวกัน จาก storyboard ไป .xib ได้ปกติครับ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: