防止UIViewController从应用程序包加载陈旧的XIB

时间:2013-09-26 09:16:49

标签: iphone ios objective-c xcode uiviewcontroller

我在发货应用中有一个UIViewController子类,其UI历来是从XIB文件加载的。

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

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

有没有人知道如何阻止UIViewController子类加载过时的XIB而以编程方式创建视图?

我已经尝试在我的[super initWithNibName: nil bundle nil]实施中暂时评论对initWithNibName:bundle:的调用(我知道这是一件坏事 - 只是尝试更好地理解问题),但是这个没有帮助。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

不要使用initWithNibName,只需像这样创建视图:

myViewController = [[MyViewController alloc] init];

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