1

私は、UI が歴史的に XIB ファイルからロードされた出荷アプリに UIViewController サブクラスを持っています。

iOS 7 の互換性の問題を解決するために、この画面をプログラムでビルドするように切り替える必要があったため、XIB は不要になり、プロジェクトから削除し、Xcode でクリーン ビルドを実行しました。

ただし、App Store のバージョンの上に新しいビルドをインストールすると、2 つの UI が表示されます。アップグレードされたバージョンのアプリ バンドルにまだ存在する残りの XIB ファイルが次のように読み込まれているようです。プログラムで作成したバージョンと同様です。

UIViewController サブクラスが古い XIB をロードし、プログラムでのみビューを作成するのを止める方法を知っている人はいますか?

[super initWithNibName: nil bundle nil]実装でへの呼び出しを一時的にコメントアウトしようとしましたinitWithNibName:bundle:(問題をよりよく理解するために試しているだけなので、これは悪いことだとわかっています) が、これは役に立ちませんでした。

4

2 に答える 2

1

プログラムによるビュー作成コードを からviewDidLoadに移動するとloadView、問題が解決しました。このメソッドを実装すると、ランタイムがロードする XIB を探すのを防ぐようです。

于 2013-09-26T09:41:21.977 に答える
0

initWithNibName を使用せず、次のようにビューを作成してください:

myViewController = [[MyViewController alloc] init];

次に、viewDidLoadすべての UI 要素をプログラムで作成できます。

于 2013-09-26T09:26:21.813 に答える