私が数年間行ってきた方法は、単純に 2 つのツールバーを作成し、UIWebView の読み込み中はどちらか一方を非表示に設定することです。ツールバーとバーボタンの項目はすべて IB で作成されています。この種の「ハック」なしでできれば、実装を小さくしたいと思います。提供された助けに感謝します。
私が使用しているコードは次のとおりです。
#import "Web.h"
@interface Web()
@property (nonatomic, strong) IBOutlet UIWebView *webView;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *refreshButton;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *stopButton;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *backButtonRefreshToolbar;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *forwardButtonRefreshToolbar;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *backButtonStopToolbar;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *forwardButtonStopToolbar;
@property (nonatomic, strong) IBOutlet UIToolbar *toolbarStop;
@property (nonatomic, strong) IBOutlet UIToolbar *toolbarRefresh;
@end
@implementation Web
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
self.toolbarStop.hidden = NO;
self.toolbarRefresh.hidden = YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
self.toolbarStop.hidden = YES;
self.toolbarRefresh.hidden = NO;
[self actualizeButtons];
}
- (void)actualizeButtons
{
self.backButtonRefreshToolbar.enabled = [self.webView canGoBack];
self.forwardButtonRefreshToolbar.enabled = [self.webView canGoForward];
self.backButtonStopToolbar.enabled = [self.webView canGoBack];
self.forwardButtonStopToolbar.enabled = [self.webView canGoForward];
}