ฉันพยายามใช้ UITabBar
และตอนนี้ฉันไม่สามารถรับการติดต่อกลับจากวิธีการเมื่อเลือกรายการได้ มีโอกาสที่จะสร้าง @IBAction func
หรือไม่ หรือฉันต้องทำอะไรอย่างอื่น?
Swift UITabBarItem เป็น UIButton
comment
เป็นไปได้ที่ซ้ำกันของ รับการติดต่อกลับ/ รันโค้ดบางส่วนเมื่อมีการคลิกแท็บบน Tab Bar
- person nhgrif   schedule 17.08.2015
คำตอบ (3)
ในการใช้ปุ่ม UITabBar ตัวควบคุมมุมมองของคุณควรสอดคล้องกับโปรโตคอล UITabBarDelegate คุณต้องดำเนินการ:
สวิฟท์:
func tabBar(_ tabBar: UITabBar, didSelectItem item: UITabBarItem!)
วัตถุประสงค์ -c:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
คุณต้องตั้งค่าผู้รับมอบสิทธิ์ (tabBar.delegate = self) ใน viewDidLoad ของ ViewController ของคุณ
แก้ไข: คำตอบ Swift 3:
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
}
person
Floris M
schedule
17.08.2015
ตัวควบคุมมุมมองของคุณควรเป็นไปตาม UITabBarDelegate
และนำไปใช้:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;
วิธีการนี้เรียกว่าเมื่อผู้ใช้เลือกแท็บ (เช่น UITabBarItem
)
person
Adam Waite
schedule
17.08.2015
ฉันต้องเรียกเมธอดนี้อย่างชัดเจนในโค้ดหรือไม่ หรือเมื่อฉันนำไปใช้ใน UITabBarDelegate มันจะถูกเรียกโดยอัตโนมัติหรือไม่
- person Luca Archidiacono; 17.08.2015
UITabBar จะส่งข้อความนี้ถึงผู้รับมอบสิทธิ์เมื่อผู้ใช้เลือกแท็บ
- person Adam Waite; 17.08.2015
class MyClass: UITabBarItem, UITabBarDelegate {
class MyClass: UITabBar, UITabBarControllerDelegate, UITabBarDelegate {
การใช้งานใดต่อไปนี้ถูกต้อง การเข้ารหัสนี้ถูกต้องด้วย: func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
FYI ฉันยกเลิกการเชื่อมต่อคลาสเริ่มต้นและเชื่อมต่อกับคลาสที่กำหนดเองใหม่และยังคงใช้งานไม่ได้ (ใน main.storyboard
)
- person Luca Archidiacono; 17.08.2015
เหตุใดคุณจึงจัดคลาสย่อย UITabBarItem
- person Adam Waite; 17.08.2015
รายการแถบแท็บไม่ควรเป็นตัวแทนให้กับแถบแท็บที่เปิดอยู่ คุณอาจกำลังเขียนตัวเองเข้าสู่วงจรการรักษา
- person nhgrif; 17.08.2015
@AdamWaite ฉันเพิ่งเริ่มเขียนโปรแกรมอย่างรวดเร็วเมื่อ 1 หรือ 2 สัปดาห์ที่แล้วดังนั้นฉันจึงไม่รู้ว่าฉันกำลังคลาสย่อยอยู่ ฉันจะแก้ไขปัญหานี้ได้อย่างไร?
- person Luca Archidiacono; 17.08.2015
@nhgrif คุณหมายถึงอะไรกับสิ่งนั้น? ฉันควรทำอย่างไรอย่างอื่น? ปล่อยให้มันเป็นคลาสเริ่มต้นหรือไม่? - ฉันไม่เข้าใจมันชัดเจน
- person Luca Archidiacono; 17.08.2015
ฉันคิดว่าคุณต้องมีหนังสือและเรียนรู้พื้นฐานก่อนสิ่งอื่นใด
- person Adam Waite; 17.08.2015
ในที่สุดฉันก็แก้ไขปัญหาได้ ฉันมีปัญหากับคลาส Delegator และคลาสปกติ วิธีนี้แก้ไขปัญหาของฉันได้: tabBar.delegate = self
ในคลาส Main-Controller
person
Luca Archidiacono
schedule
17.08.2015