質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.83%

  • Swift

    6514questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3767questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift UIToolBarを非表示にしたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 287

raa

score 9

Toolbarを初期画面を非表示にしたいのですが、やり方がわかりません。
ちなみにNavigationControllerのToolbarは使いません。そっちではやり方がわかるのですが、、、
そして初期画面は非表示状態でスワイプするとbarが出てくるようにしたいのですが、どなたかご教授願います。

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    var webView: WKWebView!

    @IBOutlet weak var toolBar: UIToolbar!

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        // Navigationbarを非表示
        navigationController?.setNavigationBarHidden(true, animated: false)
        // toolBarを非表示
        //        self.toolBar.isHidden = true

    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let webConfiguration = WKWebViewConfiguration()
        // 配置
        webView = WKWebView(frame: view.frame, configuration: webConfiguration)
        // デリゲートを設定
        webView.uiDelegate = self as? WKUIDelegate

        view.addSubview(webView)
        view.sendSubview(toBack: webView)

        // URLを表示
        let myURL = URL(string: "https://www.google.com")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

        // スワイプで進む・戻る
        webView.allowsBackForwardNavigationGestures = true
        // スワイプでNavigationbarを表示
        navigationController?.hidesBarsOnSwipe = true

        let myPan = UIPanGestureRecognizer(target: self, action: #selector(ViewController.panGesture(sender:)))

        myPan.minimumNumberOfTouches = 1

        self.view.addGestureRecognizer(myPan)
    }

    @objc func panGesture(sender: UIPanGestureRecognizer){
        self.toolBar.isHidden = true
    }
}


今でこんな感じまでこれましたが、これだとwebView上でスワイプしてもしたのツールバーが隠れてくれません。
ただしツールバー上でスワイプすると隠れます。
上記はまだ途中なのでおかしいところも多々あると思いますが、どうすればはじめに書いたようになるかどなたかご教授お願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

uitoolbarのisHiddenプロパティでは解決できないのでしょうか?

もう少しコードや状況説明があれば答えられるかもです^^;

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/27 14:53

    そこはisHiddenプロパティで簡単にできましたね。ありがとうございます。
    コードを追加しましたので、お時間あれば他のところも見ていただければ幸いです。

    キャンセル

  • 2017/12/27 18:36

    そちらのViewControllerの生成されるタイミングがよくわかりませんが、VCのインスタンス作成後、画面が開くたびにhiddenする必要があるのでしたら、今書いてあるような viewwillpaear内でhiddenしていただいていいと思います。開く際に必ずインスタンス化する必要があるのでしたら、viewDidLoadでhiddenを呼んでもいいです

    他は良さそうですが、viewDidLoad内のメソッドの可読性が悪いかもですね。

    ```
    func viewDidLoad() {
    super.viewDidLoad()
    methodA()
    methodB()
    methodC()
    }
    ```

    のような形で、メソッドを三つか二つくらいに切り分け、メソッド名は何をするかの名前にしてください。
    そうすると後からみたときにどこで何の処理をやっているかわかるかと思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.83%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Swift キーボード以外の操作を無効

    前提・実現したいこと keyboardを表示している時にそれ以外の操作(タップ)を無効にする方法はありますか? 例えばKeybordを表示中に画面がスクロールしたり、他所をタッ

  • 解決済

    Swift3でボタンをタップした時にPickerViewをしたから出す方法

    前提・実現したいこと タイトル通りなのですが、ボタンをタップした時にピッカーが下から出てくるようにしたいです。 TextFieldをタップした時にピッカーが下から出るように

  • 受付中

    NavigationBarについて

    NavigationBarを設定して画面遷移をするとまえの画面に戻るボタンが自動で生成されるんですけど、それをなくすことってできますか?

  • 解決済

    WKWebViewで開くことができないページ

    前提・実現したいこと WKWebViewで該当ページのリンクをタブを実装せずに開けるようにしたい。 発生している問題・エラーメッセージ WKWebviewで新しいウィンド

  • 解決済

    WKWebView上でのjavascript実行について

    WKWebView上でのjavascriptの実行方法について質問です。以下のようなコードを書いて、alertを表示させたいのですが、表示されません。。。 何か記載方法が間違って

  • 解決済

    下スワイプでViewControllerを消す

    TableViewでCellを選択すると、ViewControllerがpresent modallyのように出てきて、その画面で下スワイプすとViewControllerが消え、

  • 受付中

    WKWebViewで進む・戻る・更新ボタンを実装したい

    WKWebViewで進む・戻る・更新ボタンを実装したいと考えております。 色々なサイトを参考にし下記のコードを記述しGoogleのHPを表示するところまで実装しております。

  • 解決済

    NavigationBarの戻るボタンの連打防止

    前提・実現したいこと NavigationBar <Backボタンの連打防止 発生している問題・エラーメッセージ A->B->Cへ画面遷移した後 C画面にて表示されているNav

同じタグがついた質問を見る

  • Swift

    6514questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3767questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。