【Swift】UIToolBarをコードで表示

【Swift】UIToolBarをコードで表示

private func setUpToolBar() {
        //フッターの非表示を無効化
        self.navigationController?.setToolbarHidden(false, animated: false)

        // ToolBarの背景色とボタンなどの色を設定
        self.navigationController?.toolbar.tintColor = UIColor.colorWithHexString("ffffff")
        self.navigationController?.toolbar.barTintColor = UIColor.colorWithHexString("00838f")

        // 各ボタンを生成
        let leftButton = UIBarButtonItem(title: "戻る",
                                         style: UIBarButtonItemStyle.plain,
                                         target: self,
                                         action: #selector(self.onClickBarButton(sender:)))

        let centerButton = UIBarButtonItem(title: "初期",
                                           style: UIBarButtonItemStyle.plain,
                                           target: self,
                                           action: #selector(self.onClickBarButton(sender:)))

        let rightButton = UIBarButtonItem(title: "進む",
                                          style: UIBarButtonItemStyle.plain,
                                          target: self,
                                          action: #selector(self.onClickBarButton(sender:)))
        // ボタンイベント判別用のTagを設定
        leftButton.tag = 1
        centerButton.tag = 2
        rightButton.tag = 3

        // ボタン同士の空白を生成
        let flexibleItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)

        // ボタンの配列を生成
        let items = [leftButton, flexibleItem, centerButton, flexibleItem, rightButton]

        // Toolbarにボタンを配置
        self.toolbarItems = items
    }

    // 各ボタンタップ後に呼ばれるメソット
    func onClickBarButton(sender: UIBarButtonItem) {
           // Tagで判別する
            switch sender.tag {
            case 1:
                print("left")
            case 2:
                print("center")
            case 3:
                print("right")
            default:
                break
            }
        }

注意・ポイント

  • Toolbarを表示するのにはself.navigationController?.setToolbarHidden(false, animated: false) を使用するが、ボタンを配置する際はself.navigationController?.toolbarItems でなく、 self.toolbarItems に設定する。

  • 一度self.navigationController?.setToolbarHidden(false, animated: false) をすると、他の画面にもTooBarが表示されてしまう。
    この時は、ToolBarを表示したくないViewControllerでself.navigationController?.setToolbarHidden(true, animated: false) を記述する必要がある(self.hidesBottomBarWhenPushed = true かもしれない…)

参考テキスト
詳解Swift 第3版 [ 荻原 剛志 ]

詳解Swift 第3版 [ 荻原 剛志 ]

価格:3,456円
(2017/1/3 01:58時点)
感想(0件)

スポンサーサイト
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中