2012-02-25 2 views
2

iPhoneのミュージックアプリの動作を再現したいと思います。そのアプリでアルバムを再生しているときに右上のボタンをタップすると、アルバムのカバーがフリップして、トラックの後ろにUITableViewが表示されます。iOS 5ミュージックアプリのアルバムトラックビューを複製するストーリーボードセグー

これをカスタムで実行することは可能ですかUIStoryboardSegue

または、同じコントローラを使用する2つのビューを切り替えるだけの最適な方法はありますか?

答えて

2

たとえば、同じビューコントローラの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

右、それは私がやってしまったものです。私は2つの異なるビューコントローラを使用し、それらの間でロジックを分割することを望んでいました。それは問題だったので、私はプレイヤービューとUITableViewの両方に同じコントローラを使用することになりました。同じシーンで複数のレイヤーで作業する必要があるため、ストーリーボードの作成がより難しくなります。 –

0

私はこの課題を抱え、カスタムセグを使用してビューコントローラを表示しました。 UIStoryboardSegueに基づいて新しいクラスを作成するだけです。インターフェイスビルダーで

#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 

セグエを選択してのNAMにセグエクラスを設定します。ここでは

は私のカスタムセグエ

.hファイルがありますあなたのカスタムセグエ。

第2のビューコントローラは、同じアニメーションを却下する次のものが含まれます。

- (IBAction)done:(id)sender { 


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

} 
関連する問題