2011-07-12 50 views
2

有兩個UIViewControllers:MyParentViewController和MyToolbarViewController。 MyParentViewController管理一個填充大部分屏幕的視圖。 MyToolbarViewController是MyParentViewController的子視圖,並且在比其父級MyParentViewController管理的視圖更高的z-index處管理比較小的視圖。父母UIViewControllers應該傳播didRotateFromInterfaceOrientation給孩子嗎?

由於MyParentViewController的視圖在視圖層次結構中位置較高,它的shouldAutorotateToDeviceOrientation方法似乎勝過MyToolbarViewController的方法。無論它返回的是使用的值。但是,我沒有看到MyToolbarViewController的didAutorotateFromDeviceOrientation被調用。是否有責任覆蓋MyParentViewController didAutorotateFromDeviceOrientation並在子視圖上調用該方法?

回答

2

在iOS 4.x中,Apple定義了所有「合法」容器控制器(拆分視圖,表格視圖,導航視圖和選項卡視圖)。這些控制器管理所有視圖管理方法(viewWill…viewDid…shouldAutoRotate…)並適當轉發它們。

如果您嘗試做類似的事情,那麼這些方法都不會被轉發。目前,如果您需要對這些方法採取行動,那麼「頂級」控制器對此負責。

[行間未來的答案]