1
我有一個由三個視圖(和相關的ViewControllers)組成的過程。當用戶到達第三個時,他們可以選擇重複第二步。如果發生這種情況,我使用一些值創建步驟2的新viewcontroller,並使用navigationController推送它。不過,我想修改viewControllers數組,以便如果用戶回去,他們不會在第3步,而是在第1步。從navigationcontroller viewControllers數組中刪除額外的viewcontrollers
所以我推我的viewController,然後刪除多餘的#3和#2堆棧像這樣:
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: step2AgainVc.navigationController.viewControllers];
[navigationArray removeObjectAtIndex: navigationArray.count - 3];
[navigationArray removeObjectAtIndex: navigationArray.count - 2];
[step2AgainVc.navigationController setViewControllers:navigationArray animated:NO];
然而,這將導致以下控制檯華林:
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
除此之外,一切正常。 現在,這是我計劃提交給App Store的第一個應用程序(僅在以前使用過Enterprise分佈的應用程序),所以我想重構該方法以不接受警告。有什麼建議麼?
我將該方法移至目標(步驟#2)控制器的viewWillAppear,並添加了一個屬性以確保僅調用該方法一次。奇蹟般有效。謝謝。 – zaitsman