UIWebViewに戻る進むリロードボタンが表示されません。
Posted: 2012年4月23日(月) 12:24
UIWebViewに戻る進むリロードボタンが表示されません。
ModalViewでUIWebViewを表示しています。
xibは使っていません。
下記のコードで作ってみましたが「Done(戻る)」ボタンは左側に表示されるのですが「戻る進むリロード」は表示されませんでした。
形としてはナビゲーションバーのセンターに矢印の「戻る進む」右側に「リロード」
ボタンを実装したいのですがどうしたらそのように表示されるでしょうか。
コードは下記となります。
■ModalViewController.h
■ModalViewController.m
ご教授いただけるとたすかります。
宜しくお願いします。
ModalViewでUIWebViewを表示しています。
xibは使っていません。
下記のコードで作ってみましたが「Done(戻る)」ボタンは左側に表示されるのですが「戻る進むリロード」は表示されませんでした。
形としてはナビゲーションバーのセンターに矢印の「戻る進む」右側に「リロード」
ボタンを実装したいのですがどうしたらそのように表示されるでしょうか。
コードは下記となります。
■ModalViewController.h
#import
@interface ModalViewController : UIViewController {
UIWebView *webView;
}
- (NSString *)getPageUrl;
- (NSString *)getPageTitle;
@property (retain, nonatomic) IBOutlet UIWebView *web;
@property (copy, nonatomic) NSString *urlString;
- (id)initWithUrlString:(NSString *)url;
@end
■ModalViewController.m
#import “ModalViewController.h”
@implementation ModalViewController
@synthesize urlString;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn’t have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren’t in use.
}
- (id)initWithUrlString:(NSString *)url
{
self = [super init];
if (self) {
// Custom initialization
self.urlString = url;
}
return self;
}
#pragma mark – View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
UIWebView *web = [[UIWebView alloc] init];
web.frame = self.view.bounds;
web.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
web.scalesPageToFit = YES;
[self.view addSubview:web];
NSURL *url;
if ([self.urlString length] > 0) {
url = [NSURL URLWithString:self.urlString];
} else {
// URLが指定されていないときのデフォルト
url = [NSURL URLWithString:@"https://www.google.co.jp/"];
}
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[web loadRequest:request];
// Do any additional setup after loading the view from its nib.
UIBarButtonItem *bbDone = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeView)];
self.navigationItem.leftBarButtonItem = bbDone;
// Webページのサイズに合わせて表示領域を調整する
webView.scalesPageToFit = YES;
webView.delegate = self;
// 次ページ・前ページボタンのアクション登録
UIButton *goNextButton = (UIButton *)[self.view viewWithTag:2001];
UIButton *goBackButton = (UIButton *)[self.view viewWithTag:2002];
[goNextButton addTarget:self action:@selector(goNextPage) forControlEvents:UIControlEventTouchUpInside];
[goBackButton addTarget:self action:@selector(goBackPage) forControlEvents:UIControlEventTouchUpInside];
// ページのタイトルとURLを取得
UILabel *urlLabel = (UILabel *)[self.view viewWithTag:3001];
UILabel *titleLabel = (UILabel *)[self.view viewWithTag:3002];
[urlLabel setText:[self getPageUrl]];
[titleLabel setText:[self getPageTitle]];
return self;
}
#pragma mark 次の画面に進む
- (void)goNextPage {
[webView goForward];
}
#pragma mark 前の画面に戻る
- (void)goBackPage {
[webView goBack];
}
#pragma mark 開いているWebページのURLを取得する
- (NSString *)getPageUrl {
NSString *pageURL = [webView stringByEvaluatingJavaScriptFromString:@"document.URL"];
return pageURL;
}
#pragma mark 開いているWebページのtitleを取得する
- (NSString *)getPageTitle {
NSString *pageTitle = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
return pageTitle;
}
- (void)dealloc {
[urlString release];
[super dealloc];
}
//modalViewを閉じる
- (void)closeView{
[self dismissModalViewControllerAnimated:YES];
}
- (void)viewDidUnload
{
[self setWeb:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(void)webViewDidStartLoad:(UIWebView*)webView{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
// ページ読込完了時にインジケータを非表示にする
-(void)webViewDidFinishLoad:(UIWebView*)webView{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
#pragma mark 初期処理
@end
ご教授いただけるとたすかります。
宜しくお願いします。