อยากรู้ว่าเวลาเาเขียนโปรแกรมให้ push view ไปเรื่อยๆ พอมันเยอะๆเข้ามันจะทำให้โปรแกรมช้ามั้ยครับ หรือ OS มันจะจัดการให้
ที่ถามเพราะว่าโปรแกรมผมมันมีหน้าแรกเป็นหน้าล็อกอิน หน้าสองเป็นหน้าเลือกให้เลือกโมดูล
เมื่อเลือกโมดูลแล้วทำงานไปตามโปรเซสเรื่อยๆ พอจบโปรเซสจะต้องกลับมาที่หน้าเลือกโมดูล
ซึ่งหน้าเลือกโมดูลจะกด back กลับไปก่อนหน้านี้ไม่ได้ ไม่งั้นจะมีการ commit process ซ้ำน่ะครับ
พอผมเขียนให้เป็นแบบนี้แล้วจะทำให้แอปตัวนี้มีแต่การ push view ไปเรื่อยๆ ไม่ pop ผมจึงเป็นห่วงว่าในอนาคตเมื่อใช้งานไปเรื่อยๆแล้วจะช้าน่ะครับ
หรือว่าควรเขียนให้เป็นแนวทางอื่นครับ ถ้าจะเป็นแนวทางอื่นช่วยแนะนำผมทีครับว่าต้องเขียนยังไง
อีกข้อหนึ่งที่ผมสงสัยก็คือ ถ้าเราอยาก push view โดยที่เมื่อ view ตัวนั้นกด back กลับมาแล้วจะต้องเป็นหน้าเลือกโมดูลต้องทำอย่างไรครับ
ขอบคุณทุกคนมากครับ
ผมเขียนให้เป็นแบบนี้แล้วจะทำใ
naiaong Tue, 31/07/2012 - 14:15
ผมเขียนให้เป็นแบบนี้แล้วจะทำให้แอปตัวนี้มีแต่การ push view ไปเรื่อยๆ ไม่ pop ผมจึงเป็นห่วงว่าในอนาคตเมื่อใช้งานไปเรื่อยๆแล้วจะช้าน่ะครับ
ผมสงสัยก็คือ ถ้าเราอยาก push view โดยที่เมื่อ view ตัวนั้นกด back กลับมาแล้วจะต้องเป็นหน้าเลือกโมดูลต้องทำอย่างไรครับ
ขออนุญาตแนะนำนะครับ
แต่ถามว่า User ใช้ยากไหม จากการ push view ทับกันไปเรื่อยๆ User
ควรจะกดไม่เกิน 3 ทีแล้วเข้าถึงเนื้อหาครับ ลองคิดดูนะครับ push view ไม่เกิน 3 ที User ก็ใช้ง่าย performance App ก็ดีกว่า
สุดท้ายลองศึกษาเรื่อง UX ดูครับถ้าสนใจ
ลองศึกษาเรื่องนี้ดูครับ
http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html
โชคดีครับสู้ๆ
เรื่องแก้รูปแบบการใช้งานนี่คง
SleeperMoNKeY Tue, 31/07/2012 - 15:39
เรื่องแก้รูปแบบการใช้งานนี่คงแก้ไม่ได้ เพราะเค้าเจาะจงมาเลยว่าต้องออกมาเป็นรูปแบบนี้น่ะครับ
เดี๋ยวผมจะไปแก้ให้หน้าเลือกโมดูลเป็น root แล้วค่อยเรียกหน้าล็อกอินมาทีหลัง พราะจะได้ popToRoot ได้ด้วย แบบนี้น่าจะดีขึ้นใช่มั้ยครับ
เดี๋ยวจบอันนี้จะลองศึกษา UX ดูครับ เผื่อจะได้ใช้งานต่อๆไป ขอบคุณมากๆเลยครับ
ครับเอาโมดูลมาก่อน แล้วpush
naiaong Tue, 31/07/2012 - 16:47
ครับเอาโมดูลมาก่อน แล้วpush login screen ใส่ login เสร็จ แล้ว pop ออกก็ได้ครับ
เรื่องรูปแบบแล้วแต่เลยครับ ถ้ารับงานมาก็ทำตามเขาได้ครับ
มีเรื่องอะไรสงสัยก็มา post ถามไว้ก็ได้ครับถ้าผมพอรู้ผมก็จะตอบครับ
โชคดีครับ
ขอบคุณมากครับ
SleeperMoNKeY Tue, 31/07/2012 - 17:07
ขอบคุณมากครับ เด๋วถ้าติดอะไรจะมารบกวนอีก 555
หน้า Login ผมใช้
n3tr Tue, 31/07/2012 - 17:10
หน้า Login ผมใช้ PresentModalView เอาแ
ส่วนเรื่อง Push ViewController ไปเรื่อยๆ นั้นไม่ได้ทำให้ช้าแบบเห็นผลชัดเจนอะไรมากนะครับ
และสุดท้ายพอ PopView ออกมันก็จะคืน mem กลับไปให้อยู่ดี
และถ้ามันยังเป็น Flow เดียวกันผมคิดว่าการ Push ก็ยังไม่น่าจะทำให้เสีย UX อะไรมากนัก
สิ่งที่ทำให้ตัวแอพเริ่มช้าจะเป็น SubView ทีมีการ init ไว้ใน View ที่แสดงผลในปัจจุบันซะมากกว่า(ลากจาก IB ถือเป็นการ init เหมือนกัน)
ส่วนถ้าอยากรู้ว่าแอพเรารับประทานแรมไปเท่าไหร่ กรณีที่ใช้ Simulator ให้เปิด ActivityMonitor แล้วหาชื่อ Process ที่ชื่อเดียวกันกับ App เราครับ
คือก่อนหน้านี้ผมไม่มีการ pop
SleeperMoNKeY Tue, 31/07/2012 - 17:54
In reply to หน้า Login ผมใช้ by n3tr
คือก่อนหน้านี้ผมไม่มีการ pop view กลับเลยน่ะครับ เพราะพอไปถึงหน้านึงก็จะซ่อนปุ่ม backเอาไว้ เลยกลัวว่าเมมจะเต็ม
ส่วนเรื่อง subview นี่คือยังไงหรอครับ หมายถึงว่า init subview เอาไว้เยอะเกินไปหรือเปล่าครับ ช่วยอธิบายทีครับ ผมไม่ค่อยเข้าใจ
ขอบคุณนะครับ
ถ้าเรามี control (subclass
n3tr Tue, 31/07/2012 - 23:11
In reply to คือก่อนหน้านี้ผมไม่มีการ pop by SleeperMoNKeY
ถ้าเรามี control (subclass ของ uiview) เยอะๆ ใน View และสั่ง Push View นั้นเข้ามามันจะมีอาการ Lag นิดๆ ตอนเข้าและออกครับ
ถ้านึกภาพไม่ออกลอง ยัด UIDatePicker ใน IB สัก 2-3 อันแล้วลองสั่ง Push view นั้นดูครับ จะมีอาการกระตุกนิดๆ ตอน Push
ส่วนเรื่อง Memory อย่าไปกังวลมากครับ ถึงกิน memory มากก็ไม่ได้แปลว่าจะทำให้แอพทำงานช้าลงนะครับ และถ้าไม่ Leak กระจายมันก็ไม่น่าจะมีปัญหาอะไรอยู่แล้ว
ถึง Memory Leak แต่แอพมันไม่แคช แอปเปิลก็ปล่อยขึ้น App Store เหมือนเดิมครับ
ขอบคุณครับ
SleeperMoNKeY Wed, 01/08/2012 - 08:55
In reply to ถ้าเรามี control (subclass by n3tr
ขอบคุณครับ
ภายใน UINavigationController
totiz Thu, 02/08/2012 - 09:32
ภายใน UINavigationController จะจัดการเรื่อง Push/Pop View ให้ และจะเก็บข้อมูลใน stack ทั้งหมดไว้หากยังไม่ pop
แต่เมื่อไรที่ memory ใกล้เต็ม UINavigationController จะทำการเคลียร์ view ออกจากแรมเพื่อคือค่าให้ระบบ
และเมื่อถึงจังหวะที่เรากด back กลับไป view นั้นๆ ที่ถูกเคลียร์ค่าไปแล้ว UINavigationController จะจัดการเรียก ViewController นั้นๆ ขึ้นมาเพื่อสร้างใหม่เองครับ
ตามนั้นครับ
chris123 Fri, 03/08/2012 - 12:36
In reply to ภายใน UINavigationController by totiz
ตามนั้นครับ
อ่ออ เห็นภาพเลยครับ ขอบคุณมาก
SleeperMoNKeY Sun, 05/08/2012 - 20:32
In reply to ภายใน UINavigationController by totiz
อ่ออ เห็นภาพเลยครับ ขอบคุณมาก