我有一个UITableViewController和DetailViewController弹出时,具体行被选中。问题是在DetailViewController中执行旋转时,tableView不会调用“didRotateFromInterfaceOrientation”方法。这是合乎逻辑的,但是如果方向改变了,我需要重新加载表格。如何检测从detailView返回到tableView时的旋转变化?
我想这个代码,但它不工作:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if (self.interfaceOrientation != [UIDevice currentDevice].orientation){
[self handleTableViewRotation];
}
}
我猜想应该有一些财产持有的tableView的定位是独立当前设备取向财产...
只是为了澄清,视图控制器已做了轮换,只是通知方法(willRotate,didRotate)没有被调用? – jrturton
是的。实际上,这些通知方法没有被调用是合乎逻辑的,因为实际的旋转发生在TBC之外 - 在DetailViewController中。所以,我正在寻求解决这个问题,并且我已经结束了使用@ender提供的第二种解决方案。我在TBC中创建了一个存储tableViewController最后一个方向的属性,并且我使用viewWillAppear方法将它与TBC中的当前设备方向进行了比较。 – Centurion