作成中のアプリには、ほとんど同じように見えるページがたくさんありますが、一部が異なります。このような状況に対処するために、サブビューを含むコンテナーコントローラーを作成しました。このサブビューを、コンテキストに基づいて必要に応じて動的に作成する別のコントローラー(および関連するペン先)のコンテンツで埋めたいと思います。
私はどこかに次の方法があります
- (void) someAction {
UIViewController* contentController = [[MyContentController alloc] init];
UIViewController* containerController = [[MyContainerController alloc] initWithContentController:contentController];
[navigationController pushViewController:pageController animated:YES];
[contentController release];
[containerController release];
}
MyContainerController.miで、コントローラーをプロパティに保持します
- (id)initWithContentController:(UIViewController *)aContentController {
if ((self = [super initWithNibName:@"MyContainerController" bundle:nil])) {
contentController = aContentController;
}
return self;
}
後でviewDidLoadで、私は次のことを行います
- (void)viewDidLoad {
[super viewDidLoad];
[contentViewContainer addSubview:contentController.view];
}
contentViewContainerは、ページ固有の情報を保持することになっているビューです。残念ながら、これはEXC_BAD_ACCESSで失敗します。面白いことに、viewDidLoad内からコンテンツコントローラーを割り当てて初期化すると、すべてが機能します。別の場所から割り当てたコントローラーを渡すことができないようです。誰でも支援できますか。