我有一個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