IOS Three20 анимация на спине
Я использую библиотеку three20 lib и подробно ttnavigator: у меня такой вопрос: с помощью этого кода я изменяю анимацию, чтобы перейти в новую навигацию:
TTURLAction* action;
action = [TTURLAction actionWithURLPath:@"tt://events"];
[action setAnimated:YES];
[action setTransition:UIViewAnimationTransitionFlipFromLeft];
[[TTNavigator navigator] openURLAction:action];
и анимация хороша, но когда в новом виде я нажимаю кнопку "назад", анимация - это стандартная прокрутка... возможно ли сохранить то же самое?
заранее спасибо
1 ответ
Решение
Если вы объявите 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];
}