UITabBarControllerを久々に見ると??って感じなんですが、スワイプで遷移する方法はわりと簡単でした。通常のタップで遷移はストーリーボード上で行っていますが正直あんまり覚えてないです。また最初から付けるときがあったら記事にしたいと思います・・・・。
まずUITabBarというのはこういう下のボタンをタップすると画面遷移するやつ
よくみるやつです。
これをスワイプで画面切り替えする方法です。
(ちなみに画像は私のアプリpocket時間割ですぞ)
まずUISwipeGestureRecognizerを用意します。
var swipe:UISwipeGestureRecognizer?
そして適当にviewDidLoadの中にでも書いていきましょう
override func viewDidLoad() {
super.viewDidLoad()
swipe = UISwipeGestureRecognizer()
//スワイプの方向を決める
swipe!.direction = .Right
//スワイプするときの指の本数
swipe!.numberOfTouchesRequired = 1
//スワイプしたときのアクション
swipe!.addTarget(self, action: "swipeRight")
//viewにスワイプジェスチャーを配置
self.view.addGestureRecognizer(swipe!)
}
後はスワイプしたときのアクションを書きます
func swipeRight(){
self.tabBarController!.selectedIndex = 1
}
このself.tabBarController.selectedIndexはUITabBarControllerに設定した配列の順だそうで。
ストーリーボード上のBarItemのタグの番号ではないですので注意です
普通に横並びで0,1,2で番号がついていると思われるのですが、とりあえずどこに飛ぶか試してみると良いと思います!
それぞれのViewControllerに右スワイプで移動、左スワイプで移動を付け足せば遷移するようになります。
全体のコード
class ViewController:UIViewController{
var swipe:UISwipeGestureRecognizer?
override func viewDidLoad() {
super.viewDidLoad()
swipe = UISwipeGestureRecognizer()
swipe!.direction = .Left
swipe!.numberOfTouchesRequired = 1
swipe!.addTarget(self, action: "swipeLeft")
self.view.addGestureRecognizer(swipe!)
}
func swipeLeft(){
print("swipeLeft")
self.tabBarController!.selectedIndex = 1
}
}
LeftとRightが先ほどと入れ替わっているので少し注意です。。。
スワイプで移動できるんだーってわかりやすくするにはアニメーションとかつけた方がいいとは思います(頑張ります)
Comments...
コメント時の注意
「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。