私は iOS 開発は初めてなので、これは最善の方法ではないかもしれませんが、うまくいきました。
WebView をラップしていたコントローラーを取り、それを UITableViewController (以前は単なる UIViewController でした) に変更して、そのコントローラー (ios6 以降) の refreshControl プロパティを利用できるようにしました。私は UITableViewController 内で TableView を使用していません (ただし、存在する必要があるようですが、これを含めますが、入力しません)。コントローラーに 2 つのメソッドを追加しました。
- (void)addPullToRefresh
{
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refreshControl addTarget:self.myWebView action:@selector(reload)
forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
}
- (void)stopRefresh
{
[self.refreshControl endRefreshing];
}
[self addPullToRefresh]; を呼び出します。viewDidLoad で、[self stopRefresh] への呼び出しを追加しました。webViewDidFinishLoad で:
UITableViewController の refreshControl プロパティを使用する方法については、こちらの手順を参照してください。