自分専用ブラウザ01
http://d.hatena.ne.jp/moto_maka/20081127/1227729444
にしたがって、アプリ内でブラウザを表示し、戻る、進む等のブラウザの基本機能も実装します。
ウェブページをアプリ内で単純に表示するまで
- SingleView Applicationで新規プロジェクト作成
- WebViewを貼り付けて、AssistantEditorで関連付け
- viewDidLoadに初期表示ページを設定
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://d.hatena.ne.jp/moto_maka/"]]]; }
- ビルドして表示されることを確認
- ピンチ、スクロール、ページ遷移など基本的な動作が行えることの確認
※もとまかさんのページにあった読み込み状態インジケータの表示については調査中
-
- Xcode4.4ではシミュレータで確認できるのか
- 実機でしか確認できないのか
- コードはXcode4.4ではどう書けばよいか(結びつけるのは何をどうすればいいか)
- もとまかさんのページにあったコードを書いてとりあえずビルドは通っている状態。
戻る、進む、中止、更新ボタンの追加
- WebView上にボタンを4つ配置
- Sceneツリー(Storyboardの左に表示されるビューごとの部品一覧)からWebViewを右クリック
- 「goBack」、「goForward」、「reload」、「stopLoading」と各ボタンをドラッグアンドドロップで結びつける
- ビルドして実行
問題点
読込状態を示すクルクル回るアレの表示方法が不明。
もとまかさんいわく、(旧バージョンのXcodeでは)デリゲートをファイルズオーナーに結びつけるのが、ステータスバーの読み込み状態インジケータの表示に必要だということです。
先ほどIBでUIWebViewのdelegateをFile's Ownerにアウトレットしましたが、
あの操作はこれらのdelegateメソッドを認識させるために必要な作業になります。
ちなみに、delegateをアウトレットしなくてもエラーにはなりませんが、
「webViewDidStartLoad」と「webViewDidFinishLoad」は当然認識できないので
ActivityIndicatorを適切なタイミングで使えない、ということになります。
ファイルズオーナーを前回のじゃんけんアプリのときにも使った記憶がないので、どうやってStoryboardと結びつければいいかわかりません。
とりあえず保留にして先に進めます。
★追記
インジケータは実機でないと確認できないという情報がもとまかさんのページにありました。
ただ、Xcode4.4ではシミュレータでも確認できるように改善されているのかまでは未確認です。
下記コードで表示状態の切替ができるようです。
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
ただ、いずれにせよFilesOwnerとの結びつけの問題が解決しないことにはどうしようもないです。。。