เอกสาร Apple บน UIViewController
พูดว่า:
หากคุณกำลังใช้ตัวควบคุมมุมมองคอนเทนเนอร์ของคุณเอง จะต้องเรียกใช้เมธอด willMoveToParentViewController:
ของตัวควบคุมมุมมองลูกก่อนที่จะเรียกใช้เมธอด removeFromParentViewController
โดยส่งผ่านค่าพาเรนต์เป็น nil
เมื่อคอนเทนเนอร์แบบกำหนดเองของคุณเรียกใช้เมธอด addChildViewController:
มันจะเรียกเมธอด willMoveToParentViewController
: ของตัวควบคุมมุมมองโดยอัตโนมัติเพื่อเพิ่มเป็นรายการลูกก่อนที่จะเพิ่ม
หากคุณกำลังใช้ตัวควบคุมมุมมองคอนเทนเนอร์ของคุณเอง จะต้องเรียกใช้เมธอด didMoveToParentViewController:
ของตัวควบคุมมุมมองลูกหลังจากการเปลี่ยนไปใช้คอนโทรลเลอร์ใหม่เสร็จสมบูรณ์ หรือหากไม่มีการเปลี่ยนแปลง ให้เรียกใช้ทันทีหลังจากเรียกใช้เมธอด addChildViewController:
เมธอด removeFromParentViewController
จะเรียกเมธอด didMoveToParentViewController:
ของตัวควบคุมมุมมองลูกโดยอัตโนมัติหลังจากที่ลบลูกออก
เหตุใดฉันจึงควรเรียกวิธีการเหล่านี้ วิธีการเหล่านั้นมีไว้ทำอะไร?
ProfileViewController *profile = [[ProfileViewController alloc] init];
profile.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self addChildViewController:profile];
[self.view addSubview:profile.view];
[profile didMoveToParentViewController:self];
รหัสของฉันทำงานได้อย่างสมบูรณ์แม้ว่าฉันจะลบบรรทัดสุดท้ายออกก็ตาม ใครสามารถช่วยฉันในเรื่องนี้ได้บ้าง?
ขอบคุณล่วงหน้า