ViewDidAppear ไม่ได้รับการเรียกเมื่อสลับมุมมอง TabBarController โดยทางโปรแกรม

ฉันกำลังสลับมุมมอง TabBarController โดยทางโปรแกรมจากตัวควบคุมมุมมองโมดอล (ดู คำถามนี้) ผู้รับมอบสิทธิ์สลับแท็บอย่างถูกต้อง แต่ viewDidAppear ไม่ได้รับการเรียกในแท็บที่เพิ่งนำเสนอ มีวิธีใดบ้างที่จะบังคับให้ viewDidAppear ถูกเรียก? หรือฉันกำลังทำอะไรผิด?


person bmueller    schedule 29.08.2012    source แหล่งที่มา


คำตอบ (3)


ในที่สุดก็เข้าใจสิ่งนี้ - เป็นเพราะฉันเรียกสวิตช์แท็บก่อนที่จะปิดมุมมองโมดอล เมื่อฉันเปลี่ยนคำสั่งซื้อมันก็ใช้ได้ดี

person bmueller    schedule 30.08.2012

บังคับให้เรียก viewDidAppear;

- (void)viewController:(YourViewControllerSubclass *)viewController isBeingDismissedWithImage:(BOOL)imageTaken {
  // Select the tabbar index (which is the second controller)
  [secondController viewDidAppear:YES];
}
person DLende    schedule 30.08.2012
comment
การดำเนินการนี้ไม่สามารถแก้ไขปัญหาได้ แต่จะเป็นการหลีกเลี่ยง ซึ่งอาจทำให้เกิดความสับสนได้ - person keji; 20.10.2015

ฉันมีปัญหาเดียวกันมาก่อน ใน viewDidLoad() ของ TabBarViewController ฉันเลือกแท็บอื่นโดยทางโปรแกรมเป็น selectedIndex = 3 ไม่ได้เรียก viewDidAppear() ของ viewController เป้าหมาย แต่ถ้าฉันย้าย selectedIndex = 3 จาก viewDidLoad() เป็น viewDidAppear() ปัญหาก็จะได้รับการแก้ไข

person Wu Yuan Chun    schedule 14.02.2017