我在发货应用中有一个UIViewController子类,其UI历来是从XIB文件加载的。
为了解决一些iOS 7兼容性问题,我不得不切换到以编程方式构建此屏幕,因此不再需要XIB,我已从项目中删除它并在Xcode中完成了一个干净的构建。 / p>
然而,当在App Store的版本顶部安装新版本时,我最终会得到一个双UI - 看起来残留的XIB文件仍然存在于应用程序包中,用于升级版本加载以及我编程创建的版本。
有没有人知道如何阻止UIViewController子类加载过时的XIB而仅以编程方式创建视图?
我已经尝试在我的[super initWithNibName: nil bundle nil]
实施中暂时评论对initWithNibName:bundle:
的调用(我知道这是一件坏事 - 只是尝试更好地理解问题),但是这个没有帮助。
答案 0 :(得分:1)
将我的程序化视图创建代码从viewDidLoad
移动到loadView
解决了问题;似乎实现此方法可以防止运行时寻找要加载的XIB。
答案 1 :(得分:0)
不要使用initWithNibName,只需像这样创建视图:
myViewController = [[MyViewController alloc] init];
接下来,在viewDidLoad
中,您可以以编程方式创建所有UI元素。