UIView
プロパティをUIViewControllerに割り当てることができるのだろうかと思います。 UIView
を接続することで、2番目のView Controllerに移行したいと考えています。私はドラッグしてコーディングして何度も試みましたが、失敗しました。私はseagueを使うようにプログラムする必要がない方法を探しています。UIViewをタップしてセグを実行する方法
この目標を達成するものはありますか?
おかげ
UIView
プロパティをUIViewControllerに割り当てることができるのだろうかと思います。 UIView
を接続することで、2番目のView Controllerに移行したいと考えています。私はドラッグしてコーディングして何度も試みましたが、失敗しました。私はseagueを使うようにプログラムする必要がない方法を探しています。UIViewをタップしてセグを実行する方法
この目標を達成するものはありますか?
おかげ
がUIView
をタップしてセグエを実行するには、ジェスチャー認識を追加する必要があります。私の例では、私はインスタンス化し、プログラムUIView
のSubclass
を追加しました:
viewDidLoad(){
// here we instantiate an object of our subclass
let customView = MyViewSubclass(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
// here we add it to our ViewController
self.view.addSubview(customView)
// here we instantiate an object of gesture recognizer
let gestureRec = UITapGestureRecognizer(target: self, action: #selector (self.someAction (_:)))
// here we add it to our custom view
customView.addGestureRecognizer(gestureRec)
}
func someAction(sender:UITapGestureRecognizer){
performSegueWithIdentifier("Whazzzzup", sender: self)
}
// Swift 3
func someAction(_ sender:UITapGestureRecognizer){
// this is the function that lets us perform the segue
performSegue(withIdentifier: "Whazzzup", sender: self)
}
あなたがUIView
のSubclass
を持っていない場合、あなたはちょうどあなたがまたUIView
...
let customView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
を追加することができますもちろん、あなたのUIView
アウトレットを取り出し、ジェスチャ認識装置を追加してください。セグエなしViewController
を提示する
let gestureRec = UITapGestureRecognizer(target: self, action: #selector (self.someAction (_:)))
myView.addGestureRecognizer(gestureRec)
、あなたはViewControllerををインスタンス化する必要があります。
func someAction(_ sender:UITapGestureRecognizer){
let controller = storyboard?.instantiateViewController(withIdentifier: "someViewController")
self.present(controller!, animated: true, completion: nil)
// swift 2
// self.presentViewController(controller, animated: true, completion: nil)
}
あなたはあなたののViewControllerの属性インスペクタでwithIdentifier
を設定する必要があります。
この例ではwithIdentifier
は、次のようになります。LandingVC
あなたがUINavigationController
を使用してback Button
を希望している場合は、ナビゲーションスタックにViewController
を押す:
self.navigationController?.pushViewController(controller!, animated: true)
ありがとう!しかし、私はこれをうまく実装していないので、現在は機能していません。識別子はどこに設定する必要がありますか?私はUITableVIewControolerを準備し、識別子セクションに呼び出し名を添付しました。これは正しいです?そうでない場合、識別子は何を指していますか? – bagels
いいえ、次にセグは表示されませんが、ビューコントローラーを押します。秒 –
私の編集を参照してください。コントローラ用のストーリーボードIDを設定し、それを 'withIdentifier'として設定する必要があります –
ストーリーボードモードは、(少なくとも、今。)これをサポートしてタップをドラッグしますジェスチャー認識機能をクリックして表示します。次に、他のセグのトランジションと同様に、表示したいビューにジェスチャ認識機能を接続します。表示されているビューが「ユーザーインタラクションを有効にする」であることを確認してください。コードは不要です。 Apple Documentation
「接続する」とはどういう意味ですか? –
のように '.addSubview''? –
だから私は、UIViewをクリックして2番目のビューコントローラに移行したいと思います。 @DavidSeek – bagels