gpt4 book ai didi

ios - 导航栏在自定义展开 segue 的动画中不可见

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:41 25 4
gpt4 key购买 nike

我在导航 Controller 中使用自定义展开转场,在转场动画中,导航栏在动画期间不可见,当动画结束时导航栏“弹出”。 ¿如何在动画期间保持导航栏的可见性?

更多详情:

我在导航栏中有一个按钮调用模态视图这个动画按预期执行,新 View 有一个按钮来触发展开 segue 动画 View 增长和消失,而这个动画正在执行导航栏在动画完成之前,目标 View Controller 不可见。

这是我用于自定义转场的代码。

- (void) perform {
UIViewController *sourceViewcontroller = self.sourceViewController;
UIViewController *destinationViewcontroller = self.destinationViewController;

[sourceViewcontroller.view.superview insertSubview:destinationViewcontroller.view atIndex:0];

[destinoViewcontroller beginAppearanceTransition:YES animated:YES];

[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
origenViewcontroller.view.transform = CGAffineTransformMakeScale(1.5, 1.5);
origenViewcontroller.view.alpha = 0.0;
}
completion:^(BOOL finished){
[destinationViewcontroller.view removeFromSuperview];
[sourceViewcontroller dismissViewControllerAnimated:NO completion:NULL];
}];
}

好的,我想我明白了,我所做的是在源 View 的 super View 中插入整个导航 Controller View ,并删除代码以从superview 并将 dismissViewControllerAnimated 的选项设置为 YES,如下所示:

- (void) perform {
UIViewController *origenViewcontroller = self.sourceViewController;
UIViewController *destinoViewcontroller = self.destinationViewController;

[origenViewcontroller.view.superview insertSubview:destinoViewcontroller.navigationController.view atIndex:0];

[UIView animateWithDuration:0.4
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
origenViewcontroller.view.transform = CGAffineTransformMakeScale(2.0, 2.0);
origenViewcontroller.view.alpha = 0.0;
}
completion:^(BOOL finished){
[origenViewcontroller dismissViewControllerAnimated:YES completion:NULL];
}];
}

我仍然不确定这是否是正确的方法。

最佳答案

您也可以将 destinationViewController 嵌入到 UINavigationController 中,并将您的 segue 从 sourceViewController 设置为 Navigation Controller.

关于ios - 导航栏在自定义展开 segue 的动画中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com