2012-10-18 46 views
0

我正在使用Push導航到不同的頁面。如你所知,它總是從右向左移動。我希望它能像這樣工作:iPhone中的自定義塞格爾

1 - 當我點擊當前頁面左側的按鈕時,它從左到右。

2 - 當我在當前頁面的右側點擊一個按鈕,它涉及從右到左。

3 - 當我點擊它加載當前頁面的按鈕,可以歸結爲最多。 (如莫代爾)

這就是我試圖通過實施UIStoryboardSegue並創建自定義順着接下去:

- (void) perform { 

    UIViewController *src = (UIViewController *) self.sourceViewController; 
    [src.navigationController popViewControllerAnimated:YES]; 
} 

或:

- (void) perform { 

    UIViewController *src = (UIViewController *) self.sourceViewController; 
    [UIView transitionWithView:src.navigationController.view duration:0.5 
         options:UIViewAnimationOptionTransitionFlipFromBottom 
        animations:^{ 
         [src.navigationController popToViewController:[src.navigationController.viewControllers objectAtIndex:0] animated:NO];; 
        } 
        completion:NULL]; 
} 

但他們不是在說我想要的方式工作。 我希望他們喜歡推Segue公司工作(我想viewDidLoad中,...又被稱爲) 你能給我一些幫助? (請分享你的答案的一些代碼)

回答

0

這正是我需要的要做:

-(void)perform { 
    UIViewController *sourceViewController = (UIViewController*)[self sourceViewController]; 
    UIViewController *destinationController = (UIViewController*)[self destinationViewController];      

    CATransition* transition = [CATransition animation]; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionPush; 
    transition.subtype = kCATransitionFromLeft; 
    [sourceViewController.navigationController.view.layer addAnimation:transition forKey:kCATransition]; 
    [sourceViewController.navigationController pushViewController:destinationController animated:NO];  
} 

乾杯!

0

IIViewDeckController就像是你想要的東西..

看到這個演示..

IIViewDeckController Open Source

IIViewDeck from scoop.it

+0

謝謝,但這不是我想要的。我想用Custom seque處理它,就像我在我的問題中提到的那樣。 – Ali

+0

是隊友,只需下載演示,並看到邏輯只有你會從這個演示只是行動與你的按鈕,並在這裏刷卡手勢可用於移動到另一個視圖.. –