2011-11-22 53 views
26

在對網絡進行一些研究但未成功之後,我來這裏問你關於警告的問題。通過故事板在XCode 4中以模態方式推送視圖時出現「不平衡呼叫開始/結束外觀轉換」警告

其實,我有一個導航控制器的視圖V1,我想在V1加載完成時推送一個模式視圖V2。 所以我用performSegueWithIdentifier方法(我正在使用故事板)。 這裏是我的代碼:

[self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self]; 

當我編譯,我得到了這樣的警告:

Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30> 

誰能幫助我?

回答

57

這聽起來像你可能正在執行在-viewWillAppear:的segue,從而生成兩個-viewWillAppear:消息沒有2個相應-viewDidAppear消息。

嘗試在-viewDidAppear中執行segue。

+0

是的!有用 !非常感謝 ! – Vinestro

+0

也爲我解決了。 – OlivaresF

+5

我在'-viewDidLoad'中執行了segue,遇到了這個問題,並且我正在通過在延遲爲0的'performSelector:withObject:afterDelay'內調用'performSegue'來解決它,但這很麻煩。此修復允許我直接在'-viewDidAppear:'中調用'performSegue'。謝謝! –

5

我有這個問題,但我做了什麼是對UIViewController我已經鏈接的Segue公司從UIButton並編碼成一個nextBtnPressed:功能,所以我其實是在按下一個按鈕推兩個新UIViewControllers。限制它只是一個賽格固定它。但經過一番調查纔看到,我已經完成了兩次。

1

原因是多方面的,對於上下文和編程非常具體。例如,我在做什麼是

  1. 初始化聲音文件,打它(異步)1.4秒,
  2. 使用動畫計時持續約1.4秒使得在屏幕上的圖像的舉動,
  3. 在步驟2之後將計時器設置爲1.4秒,然後推動視圖控制器。

我發現的是,如果我沒有這三個步驟的說明(如果我把它們混合在一起),那麼我得到錯誤「不平衡呼叫...」。另外,如果我將視圖控制器的推送時間縮短到不到1.4秒,我也會收到消息。

因此,檢查程序指令的順序和時間是否正確。

5

發展不平衡調用開始/結束的外觀轉變爲'

說,一個動畫完成的最後一個相關的動畫心不是之前啓動。 那麼,在推送新視圖控制器之前,你是否會彈出任何視圖控制器? 或者可能會彈出根目錄?如果是,請在沒有動畫的情況下嘗試這樣做 即[self.navigationController popToRootViewControllerAnimated:NO];

然後看看這是否解決了這個問題,在我的情況下,這個伎倆。

相關問題