2012-02-25 22 views

回答

2

在相同視圖控制器的兩個視圖之間翻轉可能更簡單,例如,

- (IBAction)showTracksView 
{ 
    [UIView transitionWithView:self.view 
        duration:1.0 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:^{ tracksView.hidden = NO; } 
       completion:^(BOOL finished){ self.navigationItem.title = @"Tracks"; }]; 
} 

- (IBAction)hideTracksView 
{ 
    [UIView transitionWithView:self.view 
        duration:1.0 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:^{ tracksView.hidden = YES; } 
       completion:^(BOOL finished){ self.navigationItem.title = @"Album cover"; }]; 
} 

其中tracksView是你的軌道UITableView。

+1

對,這就是我終於實現了。我希望能夠使用兩個不同的視圖控制器並將它們之間的邏輯分開。這是有問題的,所以我最終爲播放器視圖和UITableView使用了相同的控制器。這使得故事板變得更加困難,因爲我現在必須在同一場景中使用多個圖層。 – 2012-02-27 22:59:46

0

我有這個挑戰,並解決了它使用自定義segue呈現視圖控制器。只需創建一個基於UIStoryboardSegue的新課程。

這裏是我的自定義賽格瑞

.h文件中:

#import <UIKit/UIKit.h> 

@interface BRTrackNotesSegue : UIStoryboardSegue 

@end 

.m文件

@implementation BRTrackNotesSegue 

- (void) perform { 
    UIViewController *src = (UIViewController *) self.sourceViewController; 
    UIViewController *dst = (UIViewController *) self.destinationViewController; 
    [UIView transitionWithView:src.navigationController.view duration:0.50 
         options:UIViewAnimationOptionTransitionFlipFromLeft 
        animations:^{ 
         [src.navigationController pushViewController:dst animated:NO]; 
        } 
        completion:NULL]; 
} 

@end 

在界面生成器中選擇SEGUE與Segue公司類設置的南你的習慣繼續。

第二視圖控制器包含以下具有相同的動畫駁回:

- (IBAction)done:(id)sender { 


    [UIView transitionWithView:self.navigationController.view 
         duration:0.50 
         options:UIViewAnimationOptionTransitionFlipFromLeft 
        animations:nil 
        completion:nil]; 
    [self.navigationController popViewControllerAnimated:NO]; 

} 
相關問題