popToRootViewController вперед анимация
В моей библиотеке есть представление загрузки, которое появляется в представлении ввода. Когда пользователь завершит работу с представлением ввода, он должен вернуться к представлению загрузки, чтобы снова совершить какое-то волшебство, и когда это будет сделано, должен появиться третий вид.
Теперь, из представления удобства использования, я не хочу "скользить назад" к представлению загрузки, и при этом я не хочу выделять новое представление загрузки, когда у меня уже есть это в памяти.
Есть ли какой-то способ, которым я могу использовать popToRootViewController при сдвиге вида вперед? (Да, я удаляю кнопку возврата в представлении загрузки)..
2 ответа
Хорошо здесь идет - возможно, попробуйте использовать что-то вроде этого
// This goes in whatever view controller you want to pop with
- (void)popToRootWithForwardAnimation
{
NSMutableArray * viewControllers = [[[self.navigationController viewControllers] mutableCopy] autorelease]
UIViewController * rootViewController = [viewControllers objectAtIndex:0]
[viewControllers removeObjectAtIndex:0]; // try using with and without this line?
[viewControllers addObject:rootViewController];
[self.navigationController setViewControllers:viewControllers animated:YES];
}
// This goes in the root view controller
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated]
NSMutableArray * viewControllers = [[[self.navigationController viewControllers] mutableCopy] autorelease]
if ([viewControllers count] > 1)
{
[viewControllers removeAllObjects];
[viewControllers addObject:self];
[self.navigationController setViewControllers:viewControllers animated:NO];
}
…
…
}
Хм, я бы сказал, что лучшим подходом было бы перевернуть представление модальным способом, а не нажимать / вставлять в стек навигации. Таким образом, вы хотели бы сделать в представлении ввода, где вы нажимаете следующий контроллер представления:
MagicViewController *magicVC = [[MagicViewController alloc] init];
magicVC.setModalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:magicVC animated:true];
Затем, когда контроллер Magic View закончит свою магию, просто сделайте в тот момент (где вы в противном случае выскочит):
[self dismissModalViewControllerAnimated:true];
Это было бы намного круче, чем простая навигация.