สั่ง present ViewController ใน viewDidLoad() แล้วไม่แสดงผล

ถ้าสั่ง present เปิดหน้า viewController ใหม่ โดยเรายัดคำสั่งไว้ใน viewDidLoad() จะไม่แสดงผลนะครับ สาเหตุเกิดจากข้อมูลที่จุดนี้ยังไม่มีข้อมูลของ screen ดังนั้นถ้า viewController มีการแสดงแล้วถึงจะใช้คำสั่ง present ได้ ดังนั้นกรณีจะใช้ไม่ได้ครับ ให้ใช้แบบนี้แทนครับ

เพิ่มเติมเกี่ยวกับ present viewcontroller หากใช้กับ navigation controller จะไม่มีแถบบาร์ด้านบน หากต้องการให้มี ต้องใช้ push viewcontroller ในการเปิดหน้าใหม่ สาเหตุเพราะว่า present viewcontroller นั้นจะเป็นการเปิดหน้าแอปใหม่แบบ modally นั่นคือจะอยู่ภายนอกของ navigation มันจะไม่อยู่ใน navigation controller ดังนั้นถ้าต้องการให้มีแถบบาร์ด้านบน มี 2 วิธีดังนี้

วิธีที่ 1 ใช้ push

วิธีที่ 2 ฝัง view controller ใหม่ไว้ใน navigation controller และใช้ present

 

 

0