iPhoneのミュージックアプリの動作を再現したいと思います。そのアプリでアルバムを再生しているときに右上のボタンをタップすると、アルバムのカバーがフリップして、トラックの後ろにUITableView
が表示されます。iOS 5ミュージックアプリのアルバムトラックビューを複製するストーリーボードセグー
これをカスタムで実行することは可能ですかUIStoryboardSegue
?
または、同じコントローラを使用する2つのビューを切り替えるだけの最適な方法はありますか?
iPhoneのミュージックアプリの動作を再現したいと思います。そのアプリでアルバムを再生しているときに右上のボタンをタップすると、アルバムのカバーがフリップして、トラックの後ろにUITableView
が表示されます。iOS 5ミュージックアプリのアルバムトラックビューを複製するストーリーボードセグー
これをカスタムで実行することは可能ですかUIStoryboardSegue
?
または、同じコントローラを使用する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です。
私はこの課題を抱え、カスタムセグを使用してビューコントローラを表示しました。 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];
}
右、それは私がやってしまったものです。私は2つの異なるビューコントローラを使用し、それらの間でロジックを分割することを望んでいました。それは問題だったので、私はプレイヤービューとUITableViewの両方に同じコントローラを使用することになりました。同じシーンで複数のレイヤーで作業する必要があるため、ストーリーボードの作成がより難しくなります。 –