popToRootViewController вперед анимация - PullRequest
1 голос
/ 24 октября 2011

В моей библиотеке есть загрузочное представление, которое отображается в виде ввода.Когда пользователь завершит работу с представлением ввода, он должен вернуться к представлению загрузки, чтобы снова совершить какое-то волшебство, и когда это будет сделано, он должен отобразить третье представление.

Теперь из представления удобства использования я не хочучтобы «сдвинуть назад» к представлению загрузки, я также не хочу выделять новое представление загрузки, когда у меня уже есть его в памяти.

Есть ли какой-то способ, которым я могу использовать popToRootViewController при сдвиге представления вперед?(Да, я удаляю кнопку "Назад" в представлении загрузки) ..

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Хорошо, здесь идет - возможно, попробуйте использовать что-то вроде этого

// 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];
    }

    … 
    …
}
2 голосов
/ 24 октября 2011

Хм, я бы сказал, что лучшим подходом было бы перевернуть представление модальным способом, а не нажимать / вставлять в стек навигации. Таким образом, вы хотели бы сделать в представлении ввода, где вы нажимаете следующий контроллер представления:

MagicViewController *magicVC = [[MagicViewController alloc] init];
magicVC.setModalTransitionStyle  = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:magicVC animated:true];

Затем, когда контроллер Magic View закончит свою магию, просто сделайте в этой точке (где вы в противном случае поп):

[self dismissModalViewControllerAnimated:true];

Это было бы намного круче, чем простая навигация.

См. Руководство по контроллерам модального вида.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...