È possibile ereditare RTLNavigationController: UINavigationController e sovrascrivere queste funzioni.
- (void) pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
DummyViewController*dvc = [[DummyViewController alloc] init];
[super pushViewController:viewController animated:NO];
[super pushViewController:dvc animated:NO];
[dvc release];
[super popViewControllerAnimated:YES];
}
e
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
UIViewController *firstViewController = [super popViewControllerAnimated:NO];
UIViewController *viewController = [super popViewControllerAnimated:NO];
[super pushViewController:viewController animated:animated];
return firstViewController;
}
e in applicazione delegato:
navCon = [[RTLNavigationController alloc] init];
rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
rootViewController.contextDelegate = self;
DummyViewController *dvc = [[DummyViewController alloc]init];
[navCon pushViewController:dvc animated:NO];
[dvc release];
[navCon pushViewController:rootViewController animated:NO];
[self.window addSubview:navCon.view];
Premendo sarà da sinistra a destra e popping da destra a sinistra
fonte
2011-11-21 14:02:27
quindi caricare il controller di visualizzazione nel modo normale, quindi ottenere una maniglia sulla vista, quindi spostarlo? Dovrei anche cambiare manualmente i pulsanti della barra di navigazione e –
. Caricare normalmente il controller della vista e spostare currentView fuori dallo schermo e spostare newView in. –
questo funziona (devi sostituire il - = con un + =) per far scorrere in avanti da sinistra. tuttavia ciò significa eseguire manualmente tutti i pulsanti avanti e indietro per ciascuna vista. che dolore. –