1

同じことを尋ねる質問が複数あることは知っていますが、それらの解決策はどれもうまくいきませんでした。

カスタムviewControllerクラス(ホーム)を作り、別途.xibを作りました。(事実上、2 つのペン先を用意します。1 つは iPad バージョンをロードするためのもので、もう 1 つは iPhone 用です)。

ホームクラスのインスタンスをインスタンス化しようとすると、質問で言及したエラーが発生しました。

xib ファイルでは、viewcontroller オブジェクトをライブラリから画面にドラッグするだけで、ファイルの所有者とファーストレスポンダの下に viewcontroller アイコンが自動的に追加されました。次に、viewController オブジェクトのインスペクタに移動し、クラスを viewController から Home に変更しました。

解決策から私が見つけた次のステップは、ビュー アウトレットをインスペクターから接続することです。何に接続する必要があるのか​​ 完全にはわかりません。私が見つけた解決策は、それをビューアイコンに接続すると言っていますが、ここでも、ファイルの所有者、最初の応答者、および vc オブジェクトしか表示されません。それはそれらのどれにも接続しません

これが私がアプリデリゲートに入れたものです

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

 Home *homePage = [[Home alloc] initWithNibName:@"HomeIpad" bundle:nil]; 

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homePage];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
4

3 に答える 3

2

Xcode の [File] -> [New] -> [New File] -> [Cocoa Touch] -> [UIViewController サブクラス] -> [with XIB for user interface] を使用して Nib を作成することをお勧めします (これを 2 回行い、Targeted for iPadをオンにして 1 回行います)。これは、XIB を作成して接続する最も信頼できる方法だと思います。

同じコントローラーに 2 つの XIB が必要な場合でも、一時的な名前 (tempvc など) を使用して 2 番目の VC サブクラスを作成します。ここで、tempvc.xib の名前を HomeIpad.xib に変更します。HomeIpad.xib を右クリックし、[名前を付けて開く] -> [ソース コード] を選択します。ソースで tempvc を検索し、出現するすべてのコントローラーの名前に置き換えます。今はすべてがうまくいっているはずです。

于 2011-08-18T08:12:23.260 に答える
1

問題は、ファイルの所有者にとって、クラスをホームに設定していなかったことです

于 2011-08-19T22:48:14.663 に答える
0

ビューコントローラをドラッグする必要はありません。代わりにUIViewをドラッグして、ファイルの所有者ビューをこのUIViewに接続するだけです。

于 2011-08-18T07:06:49.873 に答える