2016-10-31 9 views
-2

別のView Controllerの下部から表示するにはUIViewControllerが必要です。UIViewControllerを下から表示させてから非表示にします

ボタンをもう一度非表示にするオプションも必要です。リロードせずに前のView Controllerに戻すことができます。

可能ですか?

+0

viewControllerを表示することを意味しますか? –

+0

はい、別のView Controllerの下部からアニメーションが表示され、離れてしまう可能性があります。 – dpstart

+0

ストーリーボードを使用していない場合は、私の答えが役に立ちます – KrishnaCA

答えて

0

それぞれpresentViewControllerdismissViewControllerを使用することをお勧めしますが、これを使用すると、提示されたビューコントローラは、再読み込みが必要であることを意味するdismissで割り当てが解除されます。

この周りにややハックの方法がありますが、私が説明することができます:

あなたは、現在のビューコントローラの子として追加し、あなたは下から表示したいビューコントローラのインスタンスを作成することができます。その後、それをビュー階層に追加して、それをオフスクリーンからアニメーション化します。次のコードを参考にしてください:

let vc = self.storyboard!.instantiateViewControllerWithIdentifier("MyViewController") 
     self.addChildViewController(vc) 
     self.view.addSubview(vc.view) 
     vc.view.frame = CGRect(x: 0, y: self.view.frame.height, width: self.view.frame.width, height: self.view.frame.height) 
     vc.willMoveToParentViewController(self) 
     UIView.animateWithDuration(1) { 
      vc.view.frame = self.view.frame 
     } 

ボタンの押下時にアニメーションを非表示にするだけです。

+0

子ビューコントローラから他のビューコントローラに切り替えると、親ビューアにもアニメーション表示できますか? – dpstart

+0

あなたはどういう意味が分かりませんか?私のソリューションはセグを使用していません... –

1

可能です。このためには、次のことを行う必要があります。

let an:AnotherViewController = AnotherViewController() //the viewcontroller to present 
self.present(an, animated: true, completion: nil) 

上記のコードは、上記のコードが提示ビューコントローラから却下するためのものである

self.dismiss(animated: true, completion: nil) 

を提示するためです。あなたのボタンが提示されたView Controllerの中にある場合。そして、これを使うことができます。

0

はい、可能です。 View Controllerを作成し、任意のボタンをクリックすると、別のView Controllerを開いてモーダル表示することができます。 別のView Controllerでボタンを1つ追加し、そのボタンをクリックすると、そのView Controllerを閉じることができます。

ストーリーボードの最初のビューコントローラーでは、ボタンをモーダルにして次のビューコントローラーにアクションを追加できます。削除したい場合は、コールを追加できます。 dismissViewControllerAnimated(true、completed:nil)

関連する問題