来自代表的shouldAutorotateToInterfaceOrientation

时间:2011-11-04 12:13:41

标签: objective-c ios delegates rotation

在我的应用程序中我有一个缓存数据的后台函数 - 工作正常。 我已经实现了UIView * cacheProgressView;这是对缓存机制进展的直观指示。 (它包含UIProgressBar等)

由于我想在我的所有应用程序视图中显示这一点(带有许多视图的UINavigation),我已将此添加到我的代理中,这样可以很好地处理它

[self.window addSubview:cacheProgressView];

问题:当我旋转设备并且因为cacheProgressView附加到窗口而不是视图时我无法将其设置到正确的位置 - 委托内部的以下函数永远不会被调用:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{

    NSLog(@"Rotation detected from the delegate");

    return YES;
}

我应该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以注册轮换通知......

[[NSNotificationCenter defaultCenter] addObserver:self
           selector:@selector(didRotate:)
           name:@"UIDeviceOrientationDidChangeNotification" object:nil];


- (void) didRotate:(NSNotification *)notification{  
  UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
  // do stuff
}