如果 XIB 在 DLL / 库中,则加载视图时出错

Posted

技术标签:

【中文标题】如果 XIB 在 DLL / 库中,则加载视图时出错【英文标题】:Error loading view if XIB is in DLL / library 【发布时间】:2011-01-30 20:50:18 【问题描述】:

我曾经在我当前的项目中使用我的进度视图控制器。然后我决定将它移到一个单独的库项目中,并添加到我的项目中。我引用了该项目,它成功构建。我可以使用图书馆里的所有东西。

“移动”是指:我将 XIB、XIB.DESIGNER 和 XIB.CS 文件复制到库中,并将 XIB 包含在项目中并调整了命名空间。

但是当我尝试运行应用程序时,我移动的控制器无法加载。我得到的错误是:

Objective-C 抛出异常。姓名: NSInternalInconsistencyException 原因:无法在包中加载 NIB: 'NSBundle (已加载)' 带有名称 '进度控制器'

如果我检查 iPhone 模拟器目录并打开我的 APP 包,我可以看到几个 NIB 文件,它们都来自我的主项目。但是,缺少 DLL 中的 NIB。我可以看到 myLibrary.DLL 和 myLibrary.DLL.MDB 作为别名。它们指向我项目的 BIN/DEBUG 目录。那里也没有NIB,只有DLL。

我完全感到困惑。有什么想法吗?

【问题讨论】:

【参考方案1】:

MonoTouch 3 不支持库项目中的 XIB。这将在 MonoTouch 4 中得到支持。

【讨论】:

明确的答案。 :-) MT4 的计划发布是什么?您计划在该版本中进行哪些其他更改?

以上是关于如果 XIB 在 DLL / 库中,则加载视图时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS的静态库中添加xib文件

如何在框架内加载 `.xib` / `.nib` 文件?

制作替换系统库中的函数调用的 DLL 时出现问题

在 UIScrollView 中未正确加载 XIB

如何从 xib 文件加载视图控制器?

无法从视图控制器手动加载 xib?