ฟังก์ชัน Back และ Navigate
เปลี่ยนหน้าจอที่แสดง
ภาพรวม
แอปส่วนใหญ่ประกอบด้วยหน้าจอหลายหน้า ใช้ฟังก์ชัน Back และ Navigate เพื่อเปลี่ยนหน้าจอที่จะแสดง ตัวอย่างเช่น ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นสูตรที่มีฟังก์ชัน Navigate ถ้าคุณต้องการแสดงหน้าจออื่นเมื่อผู้ใช้เลือกที่ปุ่มนั้น ในสูตรนั้น คุณสามารถระบุการเปลี่ยนภาพได้ เช่น เลือน เพื่อควบคุมวิธีการที่หน้าจอหนึ่งเปลี่ยนไปเป็นอีกหน้าจอหนึ่ง
ย้อนกลับ และ นำทาง เปลี่ยนเฉพาะหน้าจอที่จะแสดงเท่านั้น หน้าจอที่ไม่ได้แสดงอยู่ในขณะนี้จะยังทำงานอยู่เบื้องหลัง คุณสามารถสร้างสูตรที่อ้างถึงคุณสมบัติของตัวควบคุมบนหน้าจออื่นๆ ได้ ตัวอย่างเช่น ผู้ใช้สามารถเปลี่ยนค่าของตัวเลื่อนบนหน้าจอหนึ่ง นำทางไปยังหน้าจออื่นที่ใช้ค่านั้นในสูตร และกำหนดว่ามีผลต่อสิ่งที่เกิดขึ้นในหน้าจอใหม่อย่างไร ผู้ใช้สามารถนำทางกลับไปยังหน้าจอดั้งเดิม และยืนยันว่าแถบเลื่อนเก็บใช้ค่านั้นอยู่
ตัวแปรบริบท จะถูกเก็บรักษาไว้เมื่อผู้ใช้สลับไปมาระหว่างหน้าจอต่างๆ คุณสามารถใช้ นำทาง เพื่อตั้งค่าตัวแปรบริบทอย่างน้อยหนึ่งตัวแปรสำหรับหน้าจอที่สูตรดังกล่าวจะแสดง ซึ่งเป็นวิธีเดียวที่จะตั้งค่าตัวแปรบริบทจากภายนอกหน้าจอได้ คุณสามารถใช้วิธีนี้เพื่อส่งผ่านพารามิเตอร์ไปยังหน้าจอได้ ถ้าคุณใช้เครื่องมือเขียนโปรแกรมอื่น วิธีการนี้จะคล้ายกับการส่งผ่านพารามิเตอร์ไปยังขั้นตอนวิธีการต่างๆ
ใช้คุณสมบัติ StartScreen ของออบเจ็กต์ของ แอป เพื่อควบคุมหน้าจอแรกที่จะแสดง
คุณสามารถใช้ฟังก์ชันเหล่านี้ภายใน สูตรลักษณะการทำงาน เท่านั้น
นำทาง
ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล
ในอาร์กิวเมนต์แรก ระบุชื่อของหน้าจอที่ต้องการให้แสดง
ในอาร์กิวเมนต์ที่สอง ระบุวิธีการที่หน้าจอเก่าเปลี่ยนเป็นหน้าจอใหม่:
อาร์กิวเมนต์การเปลี่ยน | คำอธิบาย | การสาธิต |
---|---|---|
การเปลี่ยนหน้าจอปก | หน้าจอใหม่เลื่อนลงในมุมมอง เลื่อนขวาไปซ้าย เพื่อครอบคลุมหน้าจอปัจจุบัน | |
การเปลี่ยนหน้าจอปกขวา | หน้าจอใหม่เลื่อนลงในมุมมอง เลื่อนซ้ายไปขวา เพื่อครอบคลุมหน้าจอปัจจุบัน | |
การเปลี่ยนหน้าจอ.จางลง | หน้าจอปัจจุบันเลือนหายไปเพื่อแสดงหน้าจอใหม่ | |
ScreenTransition.None (ค่าเริ่มต้น) | หน้าจอใหม่จะแทนที่หน้าจอปัจจุบันอย่างรวดเร็ว | |
การเปลี่ยนหน้าจอ.เปิดเผย | หน้าจอปัจจุบันเลื่อนออกจากมุมมอง เลื่อนขวาไปซ้าย เพื่อไม่ครอบคลุมหน้าจอใหม่ | |
การเปลี่ยนหน้าจอ.UnCoverRight | หน้าจอปัจจุบันเลื่อนออกจากมุมมอง เลื่อนซ้ายไปขวา เพื่อไม่ครอบคลุมหน้าจอใหม่ |
คุณสามารถใช้ นำทาง เพื่อสร้างหรืออัปเดต ตัวแปรบริบท ของหน้าจอใหม่ได้ เนื่องจากเป็นอาร์กิวเมนต์ที่สามเพิ่มเติม ผ่าน เรกคอร์ด ที่ประกอบด้วยชื่อตัวแปรบริบท เป็นชื่อ คอลัมน์ และค่าใหม่สำหรับตัวแปรบริบทดังกล่าว เรกคอร์ดนี้จะเหมือนกับเรกคอร์ดที่คุณใช้กับฟังก์ชัน UpdateContext
ตั้งค่าคุณสมบัติ OnHidden ของหน้าจอเก่า คุณสมบัติ OnVisible ของหน้าจอใหม่ หรือทั้งสองคุณสมบัติ เพื่อทำการเปลี่ยนแปลงเพิ่มเติมในระหว่างการเปลี่ยน คุณสมบัติ App.ActiveScreen จะอัปเดตเพื่อให้แสดงการเปลี่ยนแปลง
Navigate โดยปกติจะส่งกลับ true แต่จะส่งกลับ false หากพบข้อผิดพลาด
ตัวแปรบริบทสำหรับการนำทางอธิบายไว้ในบทความ นำทางระหว่างหน้าจอ
Back
ใช้กับ: แอป Canvas
ฟังก์ชัน Back จะส่งกลับหน้าจอที่แสดงขึ้นมาล่าสุด
แต่ละการเรียก นำทาง แอปจะติดตามหน้าจอที่ปรากฏและการเปลี่ยนแปลง คุณสามารถใช้การเรียก กลับ ต่อเนื่อง เพื่อส่งคืนไปยังหน้าจอที่ปรากฏขึ้นเมื่อผู้ใช้เริ่มต้นแอป
เมื่อฟังก์ชัน Back ทำงาน การเปลี่ยนผกผันจะถูกใช้โดยค่าเริ่มต้น ตัวอย่างเช่น หากหน้าจอปรากฏผ่านการเปลี่ยนแปลง CoverRight กลับ จะใช้ UnCover (ซึ่งอยู่ทางซ้าย) เพื่อส่งกลับ เฟด และ ไม่มีเลย เป็นอินเวอร์สของตัวเอง ผ่านอาร์กิวเมนต์ตัวเลือกไปที่ กลับ เพื่อบังคับให้มีการเปลี่ยนแปลงเฉพาะ
ย้อนกลับ โดยปกติจะส่งกลับ จริง แต่จะส่งกลับ เท็จ หากผู้ใช้ไม่ได้ไปที่หน้าจออื่นนับตั้งแต่เริ่มแอป
ไวยากรณ์
กลับ( [ การเปลี่ยนผ่าน ] )
- การเปลี่ยนผ่าน - ตัวเลือก การเปลี่ยนภาพไปใช้ระหว่างหน้าจอปัจจุบันและหน้าจอก่อนหน้า อ้างถึงรายการของค่าที่ถูกต้องสำหรับอาร์กิวเมนต์นี้ในส่วนก่อนหน้าในบทความนี้ ตามค่าเริ่มต้น การเปลี่ยนผ่านที่หน้าจอกลับเป็นค่าผกผันของการเปลี่ยนผ่านที่ปรากฏขึ้น
นำทาง( หน้าจอ [, การเปลี่ยนผ่าน [, UpdateContextRecord ] ] )
- หน้าจอ - จำเป็น หน้าจอที่จะแสดง แทนที่จะใช้ หน้าจอ คุณยังสามารถใช้ตัวควบคุมที่อยู่บนหน้าจอที่คุณต้องการนำทางไปได้อีกด้วย
- การเปลี่ยนผ่าน - ตัวเลือก การเปลี่ยนภาพไปใช้ระหว่างหน้าจอปัจจุบันและหน้าจอถัดไป ดูรายการของค่าที่ถูกต้องสำหรับอาร์กิวเมนต์นี้ในส่วนก่อนหน้าในบทความนี้ ค่าเริ่มต้นคือ ไม่มี
- UpdateContextRecord - ไม่บังคับ เรกคอร์ดที่ประกอบด้วยชื่อของคอลัมน์อย่างน้อยหนึ่งคอลัมน์ และหนึ่งค่าสำหรับแต่ละคอลัมน์ เรกคอร์ดนี้อัปเดต ตัวแปรบริบท ของหน้าจอใหม่เหมือนกับว่าถูกส่งผ่านไปยังฟังก์ชัน UpdateContext
ตัวอย่าง
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
นำทาง(รายละเอียด) | แสดงหน้าจอ รายละเอียด โดยที่ไม่มีการเปลี่ยนหรือการเปลี่ยนแปลงค่าสำหรับตัวแปรบริบท | หน้าจอ รายละเอียด จะปรากฏอย่างรวดเร็ว |
การนำทาง(รายละเอียด,การเปลี่ยนหน้าจอ,การจางหาย) | แสดงหน้าจอ รายละเอียด ที่มีการเปลี่ยนแบบ เลือน ไม่มีการเปลี่ยนแปลงค่าของตัวแปรบริบท | หน้าจอปัจจุบันเลือนหายเพื่อแสดงหน้าจอ รายละเอียด |
นำทาง(รายละเอียด,การเปลี่ยนหน้าจอ.จางลง, { ID: 12 } ) | แสดงหน้าจอ รายละเอียด ด้วยการเปลี่ยนแบบ เลือน และอัปเดตค่าของตัวแปรบริบท ID เป็น 12 | หน้าจอปัจจุบันจะเลือนหายไปเพื่อแสดงหน้าจอ รายละเอียด และตัวแปรบริบท ID ที่หน้าจอดังกล่าวถูกตั้งค่าเป็น 12 |
นำทาง(รายละเอียด, การเปลี่ยนหน้าจอ.จางลง, { ID: 12, เฉดสี: สีแดง } ) | แสดงหน้าจอ รายละเอียด ที่มีการเปลี่ยนแบบ เลือน อัปเดตค่าตัวแปรบริบท ID เป็น 12 และอัปเดตค่าของตัวแปรบริบทแรเงา เป็น Color.Red | หน้าจอปัจจุบันเลือนหายเพื่อแสดงหน้าจอ รายละเอียด ตัวแปรบริบท ID บนหน้าจอ รายละเอียด จะตั้งค่าเป็น 12 และตัวแปรบริบท แรเงา จะตั้งค่าเป็น Color.Red ถ้าคุณตั้งค่าคุณสมบัติ Fill ของตัวควบคุมบนหน้าจอ รายละเอียด เป็น แรเงา ตัวควบคุมดังกล่าวจะแสดงเป็นสีแดง |
กลับ() | แสดงหน้าจอก่อนหน้าพร้อมกับการส่งคืนค่าเริ่มต้น | แสดงหน้าจอก่อนหน้าผ่านค่าผกผันของการเปลี่ยนผ่านที่ปรากฏบนหน้าจอปัจจุบัน |
ย้อนกลับ(การเปลี่ยนหน้าจอปก) | แสดงหน้าจอก่อนหน้าพร้อมกับการเปลี่ยนแบบ ครอบคลุม | แสดงหน้าจอก่อนหน้าผ่านการเปลี่ยนแบบ ครอบคลุม ไม่ว่าการเปลี่ยนผ่านที่ปรากฏบนหน้าจอปัจจุบัน |
ทีละขั้นตอน
สร้างแอปเปล่า
เพิ่มหน้าจอที่สองให้กับแอป
แอปนี้มีหน้าจอว่างสองหน้า: screen1 และ Screen2
ตั้งค่าคุณสมบัติ Fill ของ Screen2 เป็นค่า
Gray
บน Screen2 เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นค่านั้:
Navigate( Screen1, ScreenTransition.Cover )
ขณะที่กดแป้น Alt ค้างไว้ ให้เลือกปุ่ม
หน้าจอ 1 ปรากฏพร้อมพื้นหลังสีขาวโดยมีการเปลี่ยนผ่านที่ครอบคลุมด้านซ้าย
บน Screen1 เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นค่านั้:
Back()
ขณะที่กดแป้น Alt ค้างไว้ ให้เลือกปุ่ม
หน้าจอที่สองปรากฏขึ้นพร้อมพื้นหลังสีเทาผ่านการเปลี่ยนที่ไม่ครอบคลุมไปทางขวา (ส่วนกลับของ ครอบคลุม)
เลือกปุ่มบนแต่ละหน้าจอซ้ำๆ เพื่อเด้งไปมา