我想复制iPhone音乐应用的行为。当您在该应用程序中播放专辑并点击右上角按钮时,相册封面会翻转以显示其背后的UITableView
个曲目。
是否可以使用自定义UIStoryboardSegue
完成此操作?
或者是在两个使用相同控制器的视图之间进行切换的最佳方式?
答案 0 :(得分: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是你的UITable轨迹视图。
答案 1 :(得分:0)
我遇到了这个挑战并使用自定义segue解决了它以呈现视图控制器。只需根据UIStoryboardSegue创建一个新类。
这是我的自定义segue
.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 Class设置为自定义segue的nam。
第二个视图控制器包含以下用相同动画消除的内容:
- (IBAction)done:(id)sender {
[UIView transitionWithView:self.navigationController.view
duration:0.50
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:nil];
[self.navigationController popViewControllerAnimated:NO];
}