我有一個視圖控制器(從UIViewController
繼承),具有用於呈現數據的自定義邏輯。它可以初始化一個新的視圖控制器(相同類型)並使用 [self.navigationController pushViewController:next animated:NO]
(其中下一個是新實例化的控制器)來顯示它,創建「視圖堆棧」的體驗,使用導航控制器的默認後退按鈕進行導航堆疊。iOS:自定義後退按鈕轉換動畫
現在,在致電pushViewController:animated:
之前,我可以通過調用[self.navigationController.view.layer addAnimation:animation forKey:nil]
來自定義過渡動畫。這非常適合「沿着堆棧」的觀點。
但是,由於向上導航堆棧的默認方式是使用默認後退按鈕,所以使用的過渡是默認的從左到右的動畫,它與我的自定義動畫不匹配。
如何自定義此過渡動畫?
編輯:
我把這裏給出的意見,並與上前:
UIBarButtonItem *back = [[UIBackButtonItem alloc] initWithTitle:@"\U000025C0\U0000FE0E" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
[self.navigationItem setLeftBarButtonItem:back]
和過渡:
- (IBAction)back:(id)sender {
CATransiotion *animation = [CATransition animation];
animation.duration = 0.3f;
amimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.type = kCATransitionMoveIn;
[self.navigationController.view.layer addAnimation:animation forKey:nil];
[self.navigationController popViewControllerAnimated:NO];
}
唯一不足的是新的後退按鈕的外觀我願意與之共處。
感謝您的答案:)
我認爲自定義後退按鈕是要走的路,但我希望在代碼中這樣做。我對Objective C很陌生,但據我所知,這與構建我不使用的.xib文件有關。 – 2013-03-24 13:57:33