1

我在一个运输应用程序中有一个 UIViewController 子类,它的 UI 历史上是从 XIB 文件加载的。

为了解决一些 iOS 7 兼容性问题,我不得不切换到以编程方式构建此屏幕,因此不再需要 XIB,我已将其从项目中删除并在 Xcode 中进行了干净的构建。

但是,当在 App Store 上的版本顶部安装新版本时,我最终会得到一个双 UI - 看起来升级版本的应用程序包中仍然存在的残留 XIB 文件正在加载为以及我以编程方式创建的版本。

有谁知道如何阻止 UIViewController 子类加载陈旧的 XIB 并仅以编程方式创建视图?

[super initWithNibName: nil bundle nil]我已经尝试在我的实现中暂时注释掉调用initWithNibName:bundle:(我知道这是一件坏事——只是尝试更好地理解问题),但这并没有帮助。

4

2 回答 2

1

移动我的程序视图创建代码viewDidLoadloadView解决问题;似乎实现此方法可以防止运行时寻找要加载的 XIB。

于 2013-09-26T09:41:21.977 回答
0

不要使用 initWithNibName 并像这样创建您的视图:

myViewController = [[MyViewController alloc] init];

接下来,viewDidLoad您可以通过编程方式创建所有 UI 元素。

于 2013-09-26T09:26:21.813 回答