BeginAnimations и CommitAnimations с помощью NavigationController.PushViewController
Я пытаюсь заставить работать базовый переход анимации, когда я помещаю контроллер в навигацию. Приведенный ниже код переворачивает представление, однако представление появляется первым (каждый элемент появляется), а затем происходит переворот. Можно ли сделать анимацию сальто с помощью UINavigationController?
Любые указатели были бы хорошими, примеры, которые я нашел для Monotouch, выполняют анимацию над представлениями в другом представлении.
void ToolbarButtonClick()
{
InformationController controller = new InformationController();
NavigationController.PushViewController(controller,true);
}
public class InformationController : UIViewController
{
public override void ViewDidLoad ()
{
UIView.BeginAnimations("Flip");
UIView.SetAnimationDuration(1.0);
UIView.SetAnimationTransition(UIViewAnimationTransition.FlipFromRight,View,true);
base.ViewDidLoad ();
Title = "Information";
}
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
}
public override void ViewDidAppear (bool animated)
{
base.ViewDidAppear (animated);
UIView.CommitAnimations();
}
}
2 ответа
Я был вроде как там, но вид должен быть взят из NavigationController
:
// Push the controller first or the Title doesn't animate
NavigationController.PushViewController(controller,false);
UIView.BeginAnimations(null,IntPtr.Zero);
UIView.SetAnimationDuration(1);
UIView.SetAnimationTransition(UIViewAnimationTransition.FlipFromLeft,
NavigationController.View,true);
UIView.CommitAnimations();
Я не эксперт, но мне интересно об этом ИСТИНА на PushViewcontroller, который указывает, что он будет анимирован. Меня интересует, заставляет ли NavigationController выполнять начальный объем анимации, а затем - ваш. Когда вы устанавливаете значение false, что происходит? Я знаю, что мы склонны автоматически вводить ИСТИНУ, не задумываясь.