gpt4 book ai didi

exception - 使用 MonoTouch 的 UIViewControllerHierarchyInconsistency 异常

转载 作者:行者123 更新时间:2023-12-04 06:10:29 24 4
gpt4 key购买 nike

我已经使用 MonoTouch 2.8 和其他相关更新升级到 iOS 5。我有一个 UIViewController,其中有一个 UITabBarController,其中为 View 配置了两个不同的 XIB。在 UITabBarController 上也有一个导出。我在 ViewDidLoad 中所做的是

this.View = this.TabBar.View;

现在,随着升级到 iOS 5,我在选项卡栏中的 View 中出现了 UIViewControllerHierarchyInconsistency 异常。我可以
this.View.AddSubview(this.TabBar.View); 

或者
this.View.Add(this.TabBar.View);

并且异常停止发生。但问题是我的标签栏位于屏幕底部,只有部分图像可见,而您看不到相关文本。在我做的搜索中,我发现了一些 Objective-C 示例,它们看起来都在使用 subview 路由,这无济于事。有什么想法吗?

最佳答案

iOS4 中支持的模式是一个坏主意:您通过获取内部( View Controller 的 View 属性)并将其添加到另一个 View Controller 的 View 层次结构来连接 View Controller 。这不仅丑陋,而且引发了关于 View 层次结构的各种问题。

尽管 Apple 仍然支持基本模式,但不再支持任何高级用户,您需要使用新的 viewcontroller 包含设置。这些无效的使用现在作为异常(exception)提出。

在 WWDC 2011 演示文稿中,查找 Session 102 - “Implementing UIViewController Containment”。

主要的变化是,对于你的主 View Controller ,将占据整个屏幕,你改变旧的:

window.AddSubview (myViewController.View);

到:
window.RootViewController = myViewController

对于其他人,您使用新的 API:
currentContainer.AddChildViewController (myOtherViewController);

在您的情况下,您将一个新的 ViewController 添加到您的选项卡,因此您可以执行以下操作将您的 View Controller 添加到第一个选项卡:
myTabBar.ViewControllers [1].AddChildViewController (myFancyController)

关于exception - 使用 MonoTouch 的 UIViewControllerHierarchyInconsistency 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7845605/

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