14

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の間でファイル所有者クラスを変更しようとしました。はい、後でビューアウトレットに接続し直したことを思い出しました。

助けてください!私は困惑しています。

4

1 に答える 1

16

PageViewControllerのloadViewメソッドをオーバーライドしましたか?viewController1.viewをNSLogするとどうなりますか?

実際、Interface Builderでは、ファイルの所有者をPageViewControllerに設定し、そのビューをInterfaceBuilderにあるビューに接続する必要があります。

于 2009-07-01T10:29:51.377 に答える