我有一个观察者在UIView上调整UIWebView大小改变时(例如在设备旋转时):
[[self view] addObserver:self forKeyPath:@"frame" options:0 context:nil];
当视图被解除时,我自然需要删除此观察者(否则会有异常)。但是我会在哪里这样做?我在dealloc或者viewDidDisappear中尝试过,但是当我这样做时我得到了一个SIGABRT。
- (void) viewDidDisappear:(BOOL)animated {
NSLog(@"Is moving %d - %d", self.isMovingFromParentViewController, self.isBeingDismissed);
[[self view] removeObserver:self forKeyPath:@"frame"];
}
我之前尝试过在ViewWillDisappear上移动它,但结果相同。
此外,我对这个后来的解决方案并不完全满意(即使它可以工作),因为当视图暂时不在视图范围内时(例如使用pageViewController)它也可能会卸载,尽管这不是什么大不了的事对我而言。
将问题跟踪到这个项目并尝试解决它已经花了我一天的时间,所以任何建议都非常感谢!