iOS 5 Storyboard segue à reproduire l'app Musique de l'album de vue pistes
-
12-11-2019 - |
Question
J'aimerais reproduire le comportement de la Musique de l'iPhone app.Lorsque vous jouez à un album dans l'application et que vous appuyez sur le bouton en haut à droite de la couverture de l'album retourne pour montrer un UITableView
des traces derrière elle.
Est-il possible de réaliser cela avec un custom UIStoryboardSegue
?
Ou est le meilleur moyen juste pour basculer entre les deux vues qui utilisent le même contrôleur?
La solution
Il est probablement plus simple pour basculer entre les deux vues de la même vue-contrôleur, par exemple
- (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"; }];
}
où tracksView est votre UITableView de pistes.
Autres conseils
J'ai eu ce défi et résolu à l'aide d'un custom segue à présenter le point de vue du contrôleur.Il suffit de créer une nouvelle classe basée sur UIStoryboardSegue.
Voici mon custom segue
.h fichier:
#import <UIKit/UIKit.h>
@interface BRTrackNotesSegue : UIStoryboardSegue
@end
.m fichier
@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
Dans interface builder, sélectionnez la séquence et de définir la Séquence de Classe pour le nam de votre personnalisé segue.
Le second point de vue contrôleur contient les éléments suivants à rejeter avec la même animation :
- (IBAction)done:(id)sender {
[UIView transitionWithView:self.navigationController.view
duration:0.50
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:nil];
[self.navigationController popViewControllerAnimated:NO];
}