我沒有使用導航控制器,而我正在使用故事板。視圖控制器的轉換 - 從左到右
我必須從1視圖控制器轉換到其他,我正在使用segue。
現在我將segue樣式設置爲Custom,並在相應的類中覆蓋perform
方法。
-(void)perform
{
UIViewController *sourceViewController = [self sourceViewController];
UIViewController *destinationViewController = [self destinationViewController];
CATransition *transition = [CATransition animation];
transition.duration = 0.25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[sourceViewController.view.layer addAnimation:transition forKey:kCATransition];animated:NO];
[sourceViewController presentViewController:destinationViewController animated:YES completion:nil];
}
但是,目標視圖控制器modalTransitionStyle
也有一個屬性。
所以現在,源代碼VC從左到右好像被推入,但我想表明它正在被目標視圖控制器推送。相反,目標VC在默認情況下會執行「遮蓋垂直」,並且modalTransitionStyle
屬性只有四個選項可用,但其中沒有一個適用於我。
我想讓它工作,這個動畫應該被添加到一些超級視圖層,一個超級視圖從這兩個視圖控制器已經呈現。但是,有沒有這樣的上海華..
我不使用導航控制器。你的第二個方法會和'提出'一個觀點一樣嗎?我的意思是它會調用'viewWillAppear'和其他類似的方法嗎?我能否'解僱'這個觀點,還是我會做類似的事情來刪除這個觀點? – neeraj 2013-03-26 08:41:09
或者你能告訴我一些使用我可以將我的應用程序轉換爲使用導航控制器的步驟嗎?我有VC1,它可以呈現VC2或VC3。 VC2和VC3必須相互關聯。 – neeraj 2013-03-26 08:44:13
@neeraj第二種方法會在右側附加第二個視圖,向右滑動直到只有該視圖可見,然後關閉第一個視圖。所有相應的方法,如'viewDidLoad'或'viewWillAppear'將照常被調用。如果通過解僱你的意思是像'dismissModalViewControllerAnimated:'產生的行爲,你可以通過調用一個函數來做到這一點,但函數按相反的順序(將新視圖附加到左側並向左滑動)。 – Daniel 2013-03-27 10:30:13