Ios u导航栏在自定义展开序列的动画中不可见

Ios u导航栏在自定义展开序列的动画中不可见,ios,objective-c,animation,segue,uistoryboardsegue,Ios,Objective C,Animation,Segue,Uistoryboardsegue,我在导航控制器中使用自定义的展开序列,在序列的动画中,当动画结束时导航栏“pops”不可见。?如何在动画期间保持导航栏的可见性 更多详情: 我在导航栏中有一个按钮,用于调用模式视图。此动画按预期执行,新视图有一个按钮用于触发展开分段动画。视图将增长并消失,而此动画正在执行。在动画完成之前,目标视图控制器中的导航栏不可见 这是我用于自定义segue的代码 - (void) perform { UIViewController *sourceViewcontroller = self.so

我在导航控制器中使用自定义的展开序列,在序列的动画中,当动画结束时导航栏“pops”不可见。?如何在动画期间保持导航栏的可见性

更多详情:

我在导航栏中有一个按钮,用于调用模式视图。此动画按预期执行,新视图有一个按钮用于触发展开分段动画。视图将增长并消失,而此动画正在执行。在动画完成之前,目标视图控制器中的导航栏不可见

这是我用于自定义segue的代码

- (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];
                     }];
}
好的,我想我明白了,我所做的是在源视图的superview中插入整个导航控制器视图,删除代码以从superview中删除目标视图,并将dismissViewControllerAnimated选项设置为,如下所示:

- (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
中,并将您从
sourceViewController
导航控制器的顺序设置为
欢迎使用!如果您尝试发布正在使用的代码的示例,以便人们可以查看它来尝试并帮助您,这通常非常有用。fabf98dev是正确的,如果您为要展开的
UIViewController
创建自定义导航控制器,并将展开调用放在其中,然后,在放卷过程中将保持导航条。