1

Я перехожу к информационному виду на обратной стороне. У меня есть это flipping, и у меня есть панель навигации на другой стороне, чтобы вернуть меня к исходному виду (что было проблемой, когда я пытался использовать модальный).flip viewController только сбрасывает первый раз

Моя проблема теперь в том, что она работает только в первый раз: я нажимаю кнопку информации, я переворачиваю ее обратно. Я нажимаю кнопку «Назад», и я не могу откинуться назад.

Но, если я снова нажму эту информационную кнопку, она переместится в информационное окно вместо листания. Откидная спина все еще прекрасна. Если я выйду из корневого представления и уйду в другое место и вернусь, он снова вернется. В методе, который вызывается при нажатии кнопки INFO:

InfoViewController *controller = [[[InfoViewController alloc] init] autorelease]; 
[UIView beginAnimations:@"animation" context:nil]; 
[self.navigationController pushViewController: controller animated:NO]; 
[UIView setAnimationDuration:0.8]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
[UIView commitAnimations]; 

Спасибо за вашу помощь!

ответ

1

где вы инициализируете InfoViewController? как каждый раз, когда вы приходите на Root, он начинает инициализацию и работает нормально ... Когда вы нажимаете обратно, это не так .... так легко исправить будет писать этот код в viewWillAppear ... который вызывается каждый раз, когда вы посетить вид ..

Надеется, что это помогает ..

+0

Спасибо - что зафиксировано, что проблема! К сожалению, он поднял еще один, о котором я буду спрашивать отдельно. Спасибо! – snorkelt

0

Вот немного новее реализация, которая использует блоки из новых API, UIView и полагается на ARC.

Это, как вы нажмете новый листать экран:

InfoViewController *controller = [[InfoViewController alloc] init]; 
[self.navigationController pushViewController:controller animated:NO]; 


[UIView transitionFromView:self.view 
        toView:controller.view 
        duration:0.8f 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       completion:^(BOOL finished) { 

    // Add completion stuff here 

}]; 

А вот фрагмент кода для отклонения его:

[self.navigationController popViewControllerAnimated:NO]; 

[UIView transitionFromView:controller.view 
        toView:self.view duration:0.8f 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       completion:^(BOOL finished) { 

    // Add completion stuff here 

}]; 
Смежные вопросы