无法在没有动画的情况下呈现和关闭视图控制器并获得不平衡调用以开始/结束外观转换

Posted

技术标签:

【中文标题】无法在没有动画的情况下呈现和关闭视图控制器并获得不平衡调用以开始/结束外观转换【英文标题】:Can not present and dissmiss viewcontroller without animation and get Unbalanced calls to begin/end appearance transitions 【发布时间】:2013-12-24 11:43:36 【问题描述】:

我正在使用 monotouch 来开发我的 ios 7 应用程序。

viewWillAppear 方法中,我使用以下代码来呈现和关闭视图控制器:

  public override void ViewWillAppear (bool animated)
        
            base.ViewWillAppear (animated);

            UIApplication application = UIApplication.SharedApplication;
            if (application.StatusBarOrientation  != UIInterfaceOrientation.Portrait )
            
                UIViewController c = new UIViewController ();
                c.View.UserInteractionEnabled = false;
                PresentViewController  (c,false   ,null  );
                DismissViewController  (false ,null );
            
//my otyher codes


虽然 Iamd 使用 false 作为 animated 参数,但似乎 c 视图控制器正在呈现或关闭动画。因为我收到unbalanced calls to begin/end appearance transitions 错误。

我不能在viewDidAppear方法中使用上面的代码,所以我不知道如何解决这个问题。

【问题讨论】:

【参考方案1】:

永远不要试图在 willAppear 状态下改变 ViewControllers 的外观。与其随意更改 willAppear 状态,不如尝试在 viewController 呈现之前设置它。

【讨论】:

您能否详细说明“在它出现之前”。我怎样才能在不更改遗嘱的情况下做到这一点?还有其他方法吗? 首先:为什么不同的方向需要不同的viewControllers?你能改变子视图的位置吗?如果您确实需要不同的视图,请尝试创建 2 个不同的视图并将它们添加为子视图以查看您的 viewController

以上是关于无法在没有动画的情况下呈现和关闭视图控制器并获得不平衡调用以开始/结束外观转换的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能呈现一个模态视图控制器,并带有默认的关闭动画?

出现后无法关闭视图控制器

关闭从模态呈现的视图控制器翻转的视图控制器

在呈现新视图控制器后关闭当前视图控制器 - swift

在呈现模态视图时显示 UITabBar

如何在不隐藏 tabBar 的情况下呈现视图控制器