爲了使用UISplitViewController,我在從一個視圖控制器導航到另一個視圖控制器時替換了我的窗口根控制器。UIViewController的動畫設置錯誤方向
爲了有一些很好的過渡,而這樣做,我使用的是變焦效果是這樣的:
MyOtherViewController *controller = [[MyOtherViewController alloc] initWithNibName:@"MyOtherView" bundle:nil];
UIWindow *window = ((MyAppDelegate *)[[UIApplication sharedApplication] delegate]).window;
controller.view.frame = [window frame];
controller.view.transform = CGAffineTransformMakeScale(0.01,0.01);
controller.view.alpha = 0;
[window addSubview:controller.view];
[UIView animateWithDuration:0.2 animations:^{
controller.view.transform = CGAffineTransformMakeScale(1,1);
controller.view.alpha = 1.0;
} completion:^(BOOL finished) {
if (finished) {
[self.view removeFromSuperview];
window.rootViewController = controller;
}
}];
,這工作得很好,只是在做動畫,新視圖總是無論當前的設備方向如何,都可以在縱向模式下進行定向。當動畫完成時,視圖正確定向。
我錯過了什麼?
事情我已經嘗試:
- 把我的新控制器視圖的一個UIWindow
- 唯一的子視圖使我的新控制器的根視圖控制器動畫開始
A之前好奇的是,如果我在我的方法開始處的窗口上做了遞歸描述,窗口框架被定義爲具有768x1024(即,縱向)的尺寸,並且其內部的視圖爲748x1024,但是具有[ 0,-1,1,0,0,0](做這個mea旋轉或什麼?它應該不是身份轉換嗎?)
是我有點使用與我當前視圖中使用相同的轉換。由於它們都是窗口的直接子視圖,我想必須應用相同的變換才能獲得相同的結果是合乎邏輯的。 不幸的是,既沒有應用你提到的構圖,也沒有應用窗口變換,也沒有應用視圖變換。 – 2011-03-09 09:16:00
我剛剛發佈我的答案。由於它證實了我懷疑這個窗口沒有旋轉,而是應用了一個變換,所以我選擇了這個。 – 2011-03-09 10:34:23