我正试图通过以下代码观察UIViewController的KVO从其他对象的界面方向:
[((UIViewController *)self.delegate) addObserver:self forKeyPath:@"interfaceOrientation" options:NSKeyValueObservingOptionNew context:NULL];
并实现该功能:
-(void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context
{
if ([keyPath isEqual:@"interfaceOrientation"])
{
// do something
}
}
该方法仅在第一次调用时,虽然我可以看到代理的属性interfaceOrientation在我旋转手机时发生了变化。
为什么?
请帮忙!
感谢!!!!
答案 0 :(得分:1)
你为什么要用KVO这样做? UIViewControllers已经内置了对此的支持。看看
//iOS6 only
- (BOOL)shouldAutomaticallyForwardRotationMethods
{
return YES;
}
以及addChildViewController: