Возможно, самое элегантное решение - это кодирование протокола.Всякий раз, когда ваш DetailViewController
входит в обратный вызов ротации, вызывайте reloadData
метод вашего tableView.
Или ... вы можете продолжить этот путь.В этом случае вы должны сохранить последнюю ориентацию tableViewController как экземпляр var и сравнить его с текущим.После этого не забудьте установить новую ориентацию
РЕДАКТИРОВАТЬ: Сначала объявите новый протокол.
@protocol RotationDelegate
- (void) didRotate;
@end
В вашем DetailViewController.h:
#import RotationDelegate.h
@interface DetailViewController : UIViewController {
id <RotationDelegate> rotationDelegate;
}
@property (nonatomic, assign) id <RotationDelegate> rotationDelegate;
В DetailViewController.m:
@synthesize rotationDelegate;
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[rotationDelegate didRotate];
}
Теперь ваш ViewController, который содержит tableView:
@interface RootViewController : UITableViewController <RotationDelegate> {
...
}
И, наконец, реализует didRotate
метод и вызов [yourTableView reloadData]
внутри.Помните, что вы должны установить делегат вращения после инициализации вашего DetailViewController.