IOS Three20 анимация на спине - PullRequest
       27

IOS Three20 анимация на спине

0 голосов
/ 05 декабря 2011

Я использую библиотеку three20 и подробно ttnavigator: мой вопрос такой: с помощью этого кода я меняю анимацию, чтобы перейти в новую навигацию:

TTURLAction* action;
action = [TTURLAction actionWithURLPath:@"tt://events"]; 
[action setAnimated:YES];
[action setTransition:UIViewAnimationTransitionFlipFromLeft];
[[TTNavigator navigator] openURLAction:action];

и анимация хорошая, но когда в новом представлении я нажимаю кнопку "Назад", анимация - это стандартная прокрутка ... возможно ли сохранить то же самое?

спасибо заранее

1 Ответ

1 голос
/ 16 декабря 2011

Если вы объявите URL-адрес в TTURLMap, Three20 сделает это автоматически, когда вы отклоните свой контроллер представления:

в делегате приложения:

TTNavigator* navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeNone;
TTURLMap* map = navigator.URLMap;

[map from:@"tt://settings" toViewController:[SettingsController class] transition:UIViewAnimationTransitionFlipFromLeft];

[navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://settings"]];

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

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)viewDidLoad {
  [super viewDidLoad];


   TTButton* settingsButton = [TTButton 
                          buttonWithStyle:@"grayToolbarButton:" 
                          title:NSLocalizedString(@"DONE", @"")];
    [settingsButton sizeToFit];

     [settingsButton addTarget:self action:@selector(dismissSettings)
       forControlEvents:UIControlEventTouchUpInside]; 

 self.navigationItem.hidesBackButton = YES;
 self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] 
                                        initWithCustomView:settingsButton] autorelease];
}


 ///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)dismissSettings {
  [self.navigationController popViewControllerAnimated:YES];
}
...