2D OpenGL ESビューの描画を処理するメインビューコントローラーと、起動時にロードして描画するボタンを決定する子ビューコントローラーbuttonManagerがあります。
ユーザーがこれらのボタンのいずれかを押すと、このView Controllerが作成され、そのビューが表示されるはずですが、ビューは追加されず、動作するようにテストされています。メインビューコントローラーからの私のコードは次のとおりです。
buttonManager=[[ButtonManager alloc] init];
[self addChildViewController:buttonManager];
[self.view addSubview:buttonManager.view];
このビューを起動する私のコードは次のとおりです。
-(void)launchStopDialog: (NSString*)stopName {
NSLog(@"stopdialog should be launched.");
if (stopDialogController == nil)
stopDialogController = [[StopDialogController alloc] initWithNibName:@"StopDialog" bundle:nil];
if (stopDialogController)
[stopDialogController presentWithSuperview:self.view.superview withStopName:stopName];
}
親View Controllerにアクセスするには、self.parentViewController
を使用できます。一度取得したら、そのview
プロパティを使用するだけでそのビューにアクセスできます
IOS 5.x +を使用している方への注意
self parentViewController
はnil
を返すようになりました。同じ結果を得るには、self presentingViewController
を使用する必要があります。コードベースをアップグレードするための詳細と追加の回避策については、このブログ投稿を参照してください: http://omegadelta.net/2011/11/04/oh-my-god-they-killed-parentviewcontroller/
それは私のために働いたものです
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString * segueName = segue.identifier;
if ([segueName isEqualToString: @"child-view"]) {
ChildViewController * childViewController = (ChildViewController *) [segue destinationViewController];
[self addChildViewController:childViewController];
}
}
今、彼らが殺した後
self.parent
使用できます
override func didMove(toParentViewController parent: UIViewController?)
{
}
Objective Cブロックアプローチを使用してこれを実現します。このブロックチュートリアルをご覧ください。 https://www.youtube.com/watch?v=FS4JAy1Wy3w