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

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

新規登録して質問してみよう
ただいま回答率
85.51%
iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

2回答

386閲覧

webViewDidStartLoadが読み込みされず表示されない

narisu

総合スコア10

iPad

iPadは、Appleがデザインしたタブレット型コンピュータです。iPadアプリケーションは通常Xcode IDEのObjective-Cで書かれますが、iPadアプリケーションを組むためのほかのツールを使うことも可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2017/06/09 08:44

###前提・実現したいこと
webviewを読み込んだ際にSVProgressを表示、読み込み完了後SVProgressを非表示にさせたいのですが、うまくいきません。
かれこれ4時間くらい格闘していて周りに聞ける方もいなくてもうお手上げ状態なので助けていただけると助かります。

###該当のソースコード
swift

###ここにご自身が実行したソースコードを書いてください
import UIKit
import SVProgressHUD

class ViewController: UIViewController, UIWebViewDelegate {
var webView: UIWebView?
let Url = URL(string: "https://yahoo.co.jp")

override func viewDidLoad() { super.viewDidLoad() // リクエストを生成する let request = URLRequest(url: Url! as URL) self.webview.loadRequest(request) // 指定したページを読み込む self.webview.loadRequest(request) } // WebView を生成する func createWebView(_: UIWebView) { // UIWebViewのインスタンスを生成 let webView = UIWebView() // デリゲートを指定する webView.delegate = self; return () } //読み込み時SVProgress表示 func webViewDidStartLoad(_ webView: UIWebView) { SVProgressHUD.show(withStatus: "Loading...") SVProgressHUD.setDefaultStyle(SVProgressHUDStyle.dark) SVProgressHUD.setRingThickness(1.0) NSLog("Webview has started loading") } //読み込み終了時SVProgress非表示 func webViewDidFinishLoad(_ webView: UIWebView) { SVProgressHUD.dismiss() NSLog("Webview has successfully loaded") } // StoryBoardで配置したwebviewのプロパティ @IBOutlet weak var webview: UIWebView! //戻るボタンの生成 @IBOutlet weak var back: UIButton! //メニューボタンの生成 @IBOutlet weak var menu: UIButton! //TOPボタンの生成 @IBOutlet weak var top: UIButton! // 戻るボタンの処理 @IBAction func back(_ sender: UIButton) { self.webview.goBack() } // メニューボタンの処理 @IBAction func menu(_ sender: UIButton) { } // TOPボタンの処理 @IBAction func top(_ sender: UIButton) { //初期URL let Url = URL(string: "https://yahoo.co.jp/") let request = URLRequest(url: Url! as URL) self.webview.loadRequest(request) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/06/09 09:13

webViewDidFinishLoadは呼ばれるのでしょうか?
narisu

2017/06/09 09:14

回答ありがとうございます。 どちらも呼ばれていないですね・・・
fuzzball

2017/06/09 09:38

fromageblancさんから指摘がありますが、質問内のコードはビルドが通らないと思われますので、正しいコードに修正して下さい。また、コードは ``` で囲って下さい。
guest

回答2

0

ベストアンサー

Swift2.xですか? 引数のとこ、揺れがあるんじゃないかしら。

Swift

1// Swift 3.0 2func webViewDidStartLoad(_ webView: UIWebView) 3// Swift 2.x 4func webViewDidStartLoad(webView: UIWebView)

追記。

fuzzballさんの指摘を受けて、Swift3.0というのが分かったところで…

webView.delegate = self をしている createWebView()が呼ばれてないけど大丈夫ですか?
というか、提示のコードだとビルドできない気がしますが。

投稿2017/06/09 09:09

編集2017/06/09 09:21
fromageblanc

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/06/09 09:11

URLとかNS付いてないので3ぽいですね。
fromageblanc

2017/06/09 09:19

言われてみればそうですね。追記しました!
narisu

2017/06/09 09:23

回答ありがとうございます。 ビルドはできていますね… return の部分がよくないのでしょうか?
narisu

2017/06/09 10:23

//SVProgressHUD.dismiss() コメントアウトを外したら表示されました・・・。 大変失礼いたしました。
guest

0

swift

1let webView = UIWebView()

これだと別インスタンスを作っていることになりますね。(self.webViewがnilのままということ)

swift

1self.webView = UIWebView()

とするか、

swift

1var webView = UIWebView() 2//createWebView()の中ではdelegateのセットだけ行う

として下さい。

投稿2017/06/09 09:25

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fromageblanc

2017/06/09 09:29 編集

アウトレットで定義されてるwebViewも存在するので、インスタンスはストボーでもされてるかもです
fuzzball

2017/06/09 09:36

ぅぉ!気が付きませんでしたw
narisu

2017/06/09 09:40

僕のゴミコードのせいで撹乱させて申し訳ないです・・・
fromageblanc

2017/06/09 09:49

コードは``で囲むといいですよ。たぶん delgate = self が足りないのかと。
narisu

2017/06/09 09:55

無知で大変も申し訳ないのですが、[コードは``で囲む]というのはどういうことでしょうか? また  delgate = self が足りていないというのはどこのことでしょうか? お手数をおかけしますが宜しくお願い致します。
fromageblanc

2017/06/09 10:01

とりあえずこれで動くか試して、動いたらおさらいしてください import UIKit import SVProgressHUD class ViewController: UIViewController, UIWebViewDelegate { let Url = URL(string: "https://yahoo.co.jp") override func viewDidLoad() { super.viewDidLoad() // リクエストを生成する let request = URLRequest(url: Url! as URL) webview.delegate = self // 指定したページを読み込む self.webview.loadRequest(request) } //読み込み時SVProgress表示 func webViewDidStartLoad(_ webView: UIWebView) { SVProgressHUD.show(withStatus: "Loading...") SVProgressHUD.setDefaultStyle(SVProgressHUDStyle.dark) SVProgressHUD.setRingThickness(1.0) NSLog("Webview has started loading") } //読み込み終了時SVProgress非表示 func webViewDidFinishLoad(_ webView: UIWebView) { //SVProgressHUD.dismiss() NSLog("Webview has successfully loaded") } // StoryBoardで配置したwebviewのプロパティ @IBOutlet weak var webview: UIWebView! //戻るボタンの生成 @IBOutlet weak var back: UIButton! //メニューボタンの生成 @IBOutlet weak var menu: UIButton! //TOPボタンの生成 @IBOutlet weak var top: UIButton! // 戻るボタンの処理 @IBAction func back(_ sender: UIButton) { self.webview.goBack() } // メニューボタンの処理 @IBAction func menu(_ sender: UIButton) { } // TOPボタンの処理 @IBAction func top(_ sender: UIButton) { //初期URL let Url = URL(string: "https://yahoo.co.jp/") let request = URLRequest(url: Url! as URL) self.webview.loadRequest(request) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() }
narisu

2017/06/09 10:06

ありがとうございます! SVProgress表示されました! ただwebviewを読み込んだ後非表示にならないです・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問