我有2个视图控制器。 FirstViewController
和SecondViewController
。第二个是通过presentViewController...
两人都在收听通知:
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 :(得分:0)
如果SecondViewController
在动画播放之前通过调用(void)facebookUpdated:(NSNotification *)notification
而被解除,以使其显示在首位,则会发生此警告。
你可以:
(void)facebookUpdated:(NSNotification *)notification
之前在dismissViewControllerAnimated
中检查此属性,如果加载尚未完成,请设置另一个标志以使原始动画回调函数调用dismissViewControllerAnimated
。 (这可能是最正确的解决方案,但也是最复杂的解决方案。)