我在交付的应用程序中有一个 UIViewController 子类,其 UI 历史上是从 XIB 文件加载的。
为了解决一些 iOS 7 兼容性问题,我不得不切换到以编程方式构建此屏幕,因此不再需要 XIB,我已将其从项目中删除并在 Xcode 中完成了干净的构建。
但是,当在 App Store 上的版本之上安装新版本时,我最终得到了一个双 UI - 看起来残留的 XIB 文件仍然存在于升级版本的应用程序包中正在加载以及我以编程方式创建的版本。
有谁知道如何阻止 UIViewController 子类加载过时的 XIB 并仅以编程方式创建 View ?
我尝试在我的 initWithNibName:bundle:
实现中暂时注释掉对 [super initWithNibName: nil bundle nil]
的调用(我知道这是一件坏事要做 - 只是尝试尝试以更好地理解问题),但这并没有帮助。
最佳答案
将我的编程 View 创建代码从 viewDidLoad
移动到 loadView
解决了这个问题;似乎实现此方法可防止运行时寻找要加载的 XIB。
关于iphone - 防止 UIViewController 从应用程序包中加载陈旧的 XIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024094/