iOS 5 Storyboard пытается воспроизвести вид треков альбома приложения Music - PullRequest
2 голосов
/ 25 февраля 2012

Я бы хотел повторить поведение приложения Music на iPhone.Когда вы воспроизводите альбом в этом приложении и нажимаете верхнюю правую кнопку, обложка альбома переворачивается, показывая за ней UITableView дорожек.

Возможно ли это сделать с помощью пользовательского UIStoryboardSegue?

Или это лучший способ просто переключаться между двумя представлениями, использующими один и тот же контроллер?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Возможно, проще переключаться между двумя представлениями одного и того же контроллера представления, например,

- (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"; }];
}

, где trackView - это ваш UITableView треков.

0 голосов
/ 21 мая 2014

У меня была эта проблема, и я решил ее с помощью пользовательского перехода, чтобы представить контроллер представления. Просто создайте новый класс на основе 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 имя вашего пользовательского segue.

Второй контроллер представления содержит следующее для отклонения с той же анимацией:

- (IBAction)done:(id)sender {


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

}
...