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