2013-07-16 48 views
1

我有2個視圖控制器。 FirstViewControllerSecondViewController。二是通過presentViewController...警告:嘗試從視圖控制器(UINavigationController)退出,而演示或解僱正在進行中

呈現兩個正在聽一個通知:

FirstViewController.m

- (void)facebookUpdated:(NSNotification *)notification { 

    if (![[FacebookHelper sharedInstance] isLoggedIn]) { 

     [self.addReminderTableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 2)] withRowAnimation:UITableViewRowAnimationFade]; 

    } 
} 

SecondViewController.m

- (void)facebookUpdated:(NSNotification *)notification { 

    if (![[FacebookHelper sharedInstance] isLoggedIn]) { 

     // The user decided not to log in 

     [self dismissViewControllerAnimated:YES completion:^{ 

     }]; 
    } 
} 

SecondViewController被駁回,表中FirstViewController被重新加載。但我發現了這個警告,我不喜歡

警告:嘗試從視圖控制器 解僱而呈現或者解聘正在進行 !

而我真的不知道爲什麼我得到它。我相信沒有其他解僱正在進行中。我不確定進行中的演示是什麼意思?

回答

0

如果SecondViewController在動畫出現在第一位之前被(void)facebookUpdated:(NSNotification *)notification調用解除,則可能發生此警告。

您可以:

  1. 忽略警告
  2. ,如果此行很可能馬上要被解僱不是動畫SecondViewController的顯示避免它。
  3. 通過在初始視圖控制器動畫上設置回調,在第二個視圖控制器上調用一個函數,告訴它動畫已完成,從而避免它仍然允許動畫。然後,您可以在撥打dismissViewControllerAnimated之前檢查(void)facebookUpdated:(NSNotification *)notification中的此屬性,如果加載尚未完成,請設置另一個標誌以使原始動畫回調函數調用dismissViewControllerAnimated(這可能是最正確的解決方案,但也是最複雜的。)
相關問題