2016-04-17 8 views
2

私はメインビューコントローラを持っています。このビューコントローラ内に、別のビューコントローラをその子ビューコントローラとして表示します。以下に示すように子ビューコントローラを表示するコード。 self.currentControllerは、メインコントローラ内に配置される子コントローラです。子ビューコントローラ内でセグを表示するにはどうすればいいですか?

 self.addChildViewController(self.currentController!) 
     self.currentController?.view.frame = self.operationView.bounds 
     self.currentController?.view.layoutIfNeeded() 
     self.operationView.addSubview((self.currentController?.view!)!) 
     self.setNeedsStatusBarAppearanceUpdate() 

今私はコードの下に使用することにより、子ビューコントローラ内のショーセグエ(別のコントローラ、それを呼びましょうをThirdController)を実行したい:これを行うに

performSegueWithIdentifier("ShowSegue", sender: nil) 

、ThirdControllerは、上記入しますフルスクリーン。私がしたいのは、3番目のコントローラを子コントローラの場所に表示することです。これどうやってするの?

+0

"コンテナ"ビューコントローラがあり、その内部にビューコントローラを読み込んだとします。しかし、その後、別のView ControllerにロードしたView Controllerを変更できるようにする必要があります。それはあなたが意味することですか? –

+0

はい、それは私の言いたいことです。 –

答えて

0

[OK]申し訳ありませんが、私はスウィフトで答えを書く方法がわかりません。ですから、Objective-Cで私のソリューションがどのように行われているかをお見せしましょう。サブビューをアンロードする

- (void)loadASubview 
{ 
    subview = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstView"]; 

    [self addChildViewController:subview]; 
    [self.view addSubview:subview.view]; 

    [subview didMoveToParentViewController:self]; 
    [subview.view setFrame:self.view.bounds]; 
} 

コード:

コードは、最初のサブビューをロードするために、私はサブビューのAをロードする必要がある場合

- (void)unloadASubview 
{ 
    [subview willMoveToParentViewController:nil]; 
    [subview.view removeFromSuperview]; 
    [subview removeFromParentViewController]; 
} 

は当初、私は単にloadASubviewを呼び出します。その後、別のサブビューをロードする必要がある場合は、新しいサブビューをロードする前にunloadASubviewを呼び出すことによって、以前ロードしたサブビューをアンロードします。

関数内の "subview"変数が外部に宣言されていることに注意してください。

私はこれがあなたに役立つことを願っています。

+0

それは私のために働いてくれてありがとう。 –

関連する問題