Используя pushViewController после presentModalViewController

В моем приложении у меня есть BaseViewController (NavigationController) как корневой контроллер. Я обычно использую следующий код для навигации:

[self.navigationController pushViewController:childController animated:YES];

Но на одном из действий я хочу, чтобы следующее представление анимировало кнопку к вершине, таким образом, я использую:

[self presentModalViewController:childController animated:YES];

Все работает до сих пор. В модальном представлении я затем хочу продвинуть другой контроллер, но это, кажется, не работает. Я попробовал следующее:

// self.navigationController is null, so this doesn't work
[self.navigationController pushViewController:childController animated:YES];

// self.parentViewController is the BaseViewController and not null, but this 
// won't work either. This also generates a warning "UIViewController' may not 
// respond to '-pushViewController:animated:"
[self.parentViewController pushViewController:childController animated:YES];

В обоих случаях ничего не происходит. pushViewController отключен, в то время как модальное представление все еще показывает? Если так, есть ли иначе, я могу:

  1. Анимируйте следующий контроллер от нижней части до вершины
  2. Анимируйте следующий контроллер слева направо с кнопкой "Назад", как обычно. Кнопка "Назад" должна забрать Вас к предыдущему (модальному) представлению.

?

6
задан Mads Mobæk 10 March 2010 в 16:52
поделиться

2 ответа

Если вы представляете ModelViewController, вам необходимо отклонить его, прежде чем вы сможете вызывать методы контроллера навигации, в противном случае вам нужно поместить этот контроллер представления в стек навигации, чтобы чтобы поставить другой контроллер представления поверх него.

4
ответ дан 17 December 2019 в 04:45
поделиться

Это может быть полезно: Core Animation - Sheet-like Window Sliding

Если вы используете его в сочетании с [self.navigationController pushViewController:childController animated:NO]; чтобы отключить нативную анимацию, она может произвести эффект, который вы ищете.

Не забудьте отменить операцию при выключив childController из стека навигации.

0
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: