UIViewControllerを新しいクラスPageViewControllerにサブクラス化しました(簡単な本のアプリを書いています)。 nibファイルからロードされた新しいビューを追加したいのですが、次のコードを使用しています。できます。
PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
ただし、PageViewControllerでallocを呼び出す必要があるため、最初の行は間違っています。それを修正すると(以下)、コードはコンパイルされますが、xibファイルはロードされず、ビューは透明になります。
PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
PageViewController initWithNibNameメソッドはコメント解除されており、デフォルトであり、self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]を設定します。
私が試したこと:Page1 nibファイルで、PageViewControllerとUIViewControllerの間でファイル所有者クラスを変更しようとしました。はい、後でビューアウトレットに接続し直したことを思い出しました。
助けてください!私は困惑しています。
PageViewControllerのloadViewメソッドをオーバーライドしましたか? viewController1.viewをNSLogするとどうなりますか?
実際、Interface Builderでは、ファイルの所有者をPageViewControllerに設定し、そのビューをInterfaceBuilderにあるビューに接続する必要があります。