ฟังก์ชัน Back และ Navigate

เปลี่ยนหน้าจอที่แสดง

ภาพรวม

แอปส่วนใหญ่ประกอบด้วยหน้าจอหลายหน้า ใช้ฟังก์ชัน Back และ Navigate เพื่อเปลี่ยนหน้าจอที่จะแสดง ตัวอย่างเช่น ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นสูตรที่มีฟังก์ชัน Navigate ถ้าคุณต้องการแสดงหน้าจออื่นเมื่อผู้ใช้เลือกที่ปุ่มนั้น ในสูตรนั้น คุณสามารถระบุการเปลี่ยนภาพได้ เช่น เลือน เพื่อควบคุมวิธีการที่หน้าจอหนึ่งเปลี่ยนไปเป็นอีกหน้าจอหนึ่ง

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

ตัวแปรบริบท จะยังถูกรักษาไว้ เมื่อผู้ใช้นำทางไปมาระหว่างหน้าจอต่างๆ คุณสามารถใช้ นำทาง เพื่อตั้งค่าตัวแปรบริบทอย่างน้อยหนึ่งตัวแปรสำหรับหน้าจอที่สูตรดังกล่าวจะแสดง ซึ่งเป็นวิธีเดียวที่จะตั้งค่าตัวแปรบริบทจากภายนอกหน้าจอได้ คุณสามารถใช้วิธีนี้เพื่อส่งผ่านพารามิเตอร์ไปยังหน้าจอได้ ถ้าคุณใช้เครื่องมือเขียนโปรแกรมอื่น วิธีการนี้จะคล้ายกับการส่งผ่านพารามิเตอร์ไปยังขั้นตอนวิธีการต่างๆ

ใช้คุณสมบัติ StartScreen ของออบเจ็กต์ของ แอป เพื่อควบคุมหน้าจอแรกที่จะแสดง

คุณสามารถใช้ฟังก์ชันเหล่านี้ภายใน สูตรลักษณะการทำงาน เท่านั้น

ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง

ในอาร์กิวเมนต์แรก ระบุชื่อของหน้าจอที่ต้องการให้แสดง

ในอาร์กิวเมนต์ที่สอง ระบุวิธีการที่หน้าจอเก่าเปลี่ยนเป็นหน้าจอใหม่:

อาร์กิวเมนต์การเปลี่ยน คำอธิบาย การสาธิต
ScreenTransition.Cover หน้าจอใหม่เลื่อนลงในมุมมอง เลื่อนขวาไปซ้าย เพื่อครอบคลุมหน้าจอปัจจุบัน ภาพเคลื่อนไหวการเปลี่ยนหน้าจอแบบครอบคลุม
ScreenTransition.CoverRight หน้าจอใหม่เลื่อนลงในมุมมอง เลื่อนซ้ายไปขวา เพื่อครอบคลุมหน้าจอปัจจุบัน ภาพเคลื่อนไหวการเปลี่ยนหน้าจอแบบครอบคลุมจากด้านขวา
ScreenTransition.Fade หน้าจอปัจจุบันเลือนหายไปเพื่อแสดงหน้าจอใหม่ ภาพเคลื่อนไหวการเปลี่ยนหน้าจอแบบเลือนหาย
ScreenTransition.None (ค่าเริ่มต้น) หน้าจอใหม่จะแทนที่หน้าจอปัจจุบันอย่างรวดเร็ว ภาพเคลื่อนไหวการเปลี่ยนหน้าจอแบบไม่มี
ScreenTransition.UnCover หน้าจอปัจจุบันเลื่อนออกจากมุมมอง เลื่อนขวาไปซ้าย เพื่อไม่ครอบคลุมหน้าจอใหม่ ภาพเคลื่อนไหวการเปลี่ยนหน้าจอแบบไม่ครอบคลุม
ScreenTransition.UnCoverRight หน้าจอปัจจุบันเลื่อนออกจากมุมมอง เลื่อนซ้ายไปขวา เพื่อไม่ครอบคลุมหน้าจอใหม่ ภาพเคลื่อนไหวการเปลี่ยนหน้าจอแบบไม่ครอบคลุมจากด้านขวา

คุณสามารถใช้ นำทาง เพื่อสร้างหรืออัปเดต ตัวแปรบริบท ของหน้าจอใหม่ได้ เนื่องจากเป็นอาร์กิวเมนต์ที่สามเพิ่มเติม ผ่าน เรกคอร์ด ที่ประกอบด้วยชื่อตัวแปรบริบท เป็นชื่อ คอลัมน์ และค่าใหม่สำหรับตัวแปรบริบทดังกล่าว เรกคอร์ดนี้จะเหมือนกับเรกคอร์ดที่คุณใช้กับฟังก์ชัน UpdateContext

ตั้งค่าคุณสมบัติ OnHidden ของหน้าจอเก่า คุณสมบัติ OnVisible ของหน้าจอใหม่ หรือทั้งสองคุณสมบัติ เพื่อทำการเปลี่ยนแปลงเพิ่มเติมในระหว่างการเปลี่ยน คุณสมบัติ App.ActiveScreen จะอัปเดตเพื่อให้แสดงการเปลี่ยนแปลง

นำทาง โดยปกติจะส่งกลับ จริง แต่จะส่งกลับ เท็จ หากพบข้อผิดพลาด

ตัวแปรบริบทสำหรับการนำทางอธิบายไว้ในบทความ นำทางระหว่างหน้าจอ

Back

ใช้กับ: แอปพื้นที่ทำงาน

ฟังก์ชัน Back จะส่งกลับหน้าจอที่แสดงขึ้นมาล่าสุด

แต่ละการเรียก นำทาง แอปจะติดตามหน้าจอที่ปรากฏและการเปลี่ยนแปลง คุณสามารถใช้การเรียก กลับ ต่อเนื่อง เพื่อส่งคืนไปยังหน้าจอที่ปรากฏขึ้นเมื่อผู้ใช้เริ่มต้นแอป

เมื่อฟังก์ชัน Back ทำงาน การเปลี่ยนผกผันจะถูกใช้โดยค่าเริ่มต้น ตัวอย่างเช่น หากหน้าจอปรากฏผ่านการเปลี่ยนแปลง CoverRightกลับ จะใช้ UnCover (ซึ่งอยู่ทางซ้าย) เพื่อส่งกลับ เลือน และ ไม่มี เป็นค่าผกผัสของพวกเขา ผ่านอาร์กิวเมนต์ตัวเลือกไปที่ กลับ เพื่อบังคับให้มีการเปลี่ยนแปลงเฉพาะ

กลับ โดยปกติจะส่งกลับ จริง แต่จะส่งกลับ เท็จ หากผู้ใช้ไม่ได้ไปที่หน้าจออื่น ตั้งแต่เริ่มแอป

ไวยากรณ์

Back( [ Transition ] )

  • การเปลี่ยนแปลง - ไม่บังคับ การเปลี่ยนภาพไปใช้ระหว่างหน้าจอปัจจุบันและหน้าจอก่อนหน้า อ้างถึงรายการของค่าที่ถูกต้องสำหรับอาร์กิวเมนต์นี้ในส่วนก่อนหน้าในบทความนี้ ตามค่าเริ่มต้น การเปลี่ยนผ่านที่หน้าจอกลับเป็นค่าผกผันของการเปลี่ยนผ่านที่ปรากฏขึ้น

Navigate( Screen [, Transition [, UpdateContextRecord ] ] )

  • หน้าจอ - จำเป็นต้องมี หน้าจอที่จะแสดง แทนที่จะใช้ หน้าจอ คุณยังสามารถใช้ตัวควบคุมที่อยู่บนหน้าจอที่คุณต้องการนำทางไปได้อีกด้วย
  • การเปลี่ยนแปลง - ไม่บังคับ การเปลี่ยนภาพไปใช้ระหว่างหน้าจอปัจจุบันและหน้าจอถัดไป ดูรายการของค่าที่ถูกต้องสำหรับอาร์กิวเมนต์นี้ในส่วนก่อนหน้าในบทความนี้ ค่าเริ่มต้นคือ ไม่มี
  • UpdateContextRecord - ไม่บังคับ เรกคอร์ดที่ประกอบด้วยชื่อของคอลัมน์อย่างน้อยหนึ่งคอลัมน์ และหนึ่งค่าสำหรับแต่ละคอลัมน์ เรกคอร์ดนี้อัปเดต ตัวแปรบริบท ของหน้าจอใหม่เหมือนกับว่าถูกส่งผ่านไปยังฟังก์ชัน UpdateContext

ตัวอย่าง

สูตร คำอธิบาย ผลลัพธ์
นำทาง (รายละเอียด) แสดงหน้าจอ รายละเอียด โดยที่ไม่มีการเปลี่ยนหรือการเปลี่ยนแปลงค่าสำหรับตัวแปรบริบท หน้าจอ รายละเอียด จะปรากฏอย่างรวดเร็ว
Navigate( Details, ScreenTransition.Fade ) แสดงหน้าจอ รายละเอียด ที่มีการเปลี่ยนแบบ เลือน ไม่มีการเปลี่ยนแปลงค่าของตัวแปรบริบท หน้าจอปัจจุบันเลือนหายเพื่อแสดงหน้าจอ รายละเอียด
Navigate( Details, ScreenTransition.Fade, { ID: 12 } ) แสดงหน้าจอ รายละเอียด ด้วยการเปลี่ยนแบบ เลือน และอัปเดตค่าของตัวแปรบริบท ID เป็น 12 หน้าจอปัจจุบันจะเลือนหายไปเพื่อแสดงหน้าจอ รายละเอียด และตัวแปรบริบท ID ที่หน้าจอดังกล่าวถูกตั้งค่าเป็น 12
Navigate( Details, ScreenTransition.Fade, { ID: 12 , Shade: Color.Red } ) แสดงหน้าจอ รายละเอียด ที่มีการเปลี่ยนแบบ เลือน อัปเดตค่าตัวแปรบริบท ID เป็น 12 และอัปเดตค่าของตัวแปรบริบทแรเงา เป็น Color.Red หน้าจอปัจจุบันเลือนหายเพื่อแสดงหน้าจอ รายละเอียด ตัวแปรบริบท ID บนหน้าจอ รายละเอียด จะตั้งค่าเป็น 12 และตัวแปรบริบท แรเงา จะตั้งค่าเป็น Color.Red ถ้าคุณตั้งค่าคุณสมบัติ Fill ของตัวควบคุมบนหน้าจอ รายละเอียด เป็น แรเงา ตัวควบคุมดังกล่าวจะแสดงเป็นสีแดง
Back() แสดงหน้าจอก่อนหน้าพร้อมกับการส่งคืนค่าเริ่มต้น แสดงหน้าจอก่อนหน้าผ่านค่าผกผันของการเปลี่ยนผ่านที่ปรากฏบนหน้าจอปัจจุบัน
Back( ScreenTransition.Cover ) แสดงหน้าจอก่อนหน้าพร้อมกับการเปลี่ยนแบบ ครอบคลุม แสดงหน้าจอก่อนหน้าผ่านการเปลี่ยนแบบ ครอบคลุม ไม่ว่าการเปลี่ยนผ่านที่ปรากฏบนหน้าจอปัจจุบัน

ทีละขั้นตอน

  1. สร้างแอปเปล่า

  2. เพิ่มหน้าจอที่สองให้กับแอป

    แอปนี้มีหน้าจอว่างสองหน้า: screen1 และ Screen2

  3. ตั้งค่าคุณสมบัติ Fill ของ Screen2 เป็นค่า Gray

  4. บน Screen2 เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นค่านั้:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. ขณะที่กดแป้น Alt ค้างไว้ ให้เลือกปุ่ม

    screen1 ปรากฏขึ้นพร้อมพื้นหลังสีขาวผ่านการเปลี่ยนที่ครอบคลุมไปซ้าย

  6. บน Screen1 เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นค่านั้:

    Back()
    
  7. ขณะที่กดแป้น Alt ค้างไว้ ให้เลือกปุ่ม

    หน้าจอที่สองปรากฏขึ้นพร้อมพื้นหลังสีเทาผ่านการเปลี่ยนที่ไม่ครอบคลุมไปทางขวา (ส่วนกลับของ ครอบคลุม)

  8. เลือกปุ่มบนแต่ละหน้าจอซ้ำๆ เพื่อเด้งไปมา

ดูเพิ่มเติม

การใช้ตัวแปรบริบท