Tôi mới sử dụng iPhone. tôi muốn vô hiệu hóa nút Back (nút mũi tên trái) và nút Forward (nút mũi tên phải) trên UIToolBar trong UIWebView. Sau khi di chuyển trang web muốn kích hoạt nút quay lại và sau đó chuyển tiếp nút muốn kích hoạt khi cần thiết của nó. trong ứng dụng của tôi, tôi đang sử dụng thanh công cụ ở phía dưới thông qua trình tạo giao diện. xin vui lòng bất kỳ ai giúp tôi!Vô hiệu hóa nút Quay lại và Chuyển tiếp trên UIToolBar trong UIWebview
8
A
Trả lời
28
Gửi thông báo sau cho đối tượng nút để bật/tắt:
// Enable
[myButton setEnabled:YES];
// Disable
[myButton setEnabled:NO];
Để xác định xem bạn có nên hiển thị các nút này bạn nên kiểm tra các thuộc tính sau trên webview:
[myWebView canGoBack];
[myWebView canGoForward];
Bạn sẽ muốn kiểm tra những điều này bất cứ khi nào người dùng tải một trang. Để thực hiện việc này, hãy triển khai phương thức UIWebViewDelegate webViewDidFinishLoad:
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
// Enable or disable back
[myBackButton setEnabled:[myWebView canGoBack]];
// Enable or disable forward
[myForwardButton setEnabled:[myWebView canGoForward]];
}
4
Chỉ cần thực hiện trong một phương pháp ủy quyền của webView.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if ([webView canGoBack])
[backbutton setEnabled:YES];
else
[backbutton setEnabled:NO];
if ([webView canGoForward])
[fwdbutton setEnabled:YES];
else
[fwdbutton setEnabled:NO];
}
1
Khác với câu trả lời của pheelicks, tôi phải thực hiện thay đổi sau để vô hiệu hóa nút quay lại khi bạn quay lại trang đầu tiên và nút tiến khi bạn truy cập trang cuối.
Đã thêm người quan sát trên WebHistoryItemChangedNotification.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(webViewHistoryDidChange:)
name:@"WebHistoryItemChangedNotification"
object:nil];
cập nhật trạng thái nút trong webViewHistoryDidChange.
- (void)webViewHistoryDidChange
{
if ([theWebView canGoBack])
{
self.backButton.enabled = YES;
}
else
{
self.backButton.enabled = NO;
}
if ([theWebView canGoForward])
{
self.forwardButton.enabled = YES;
}
else
{
self.forwardButton.enabled = NO;
}
}
Tham khảo: Same is answered here
0
Một giải pháp hai lót cho Swift:
func webViewDidFinishLoad(_ webView: UIWebView) {
btnBack.isEnabled = webView.canGoBack
btnForward.isEnabled = webView.canGoForward
}
Thanks a lot, mã của bạn giải quyết vấn đề của tôi – Sivanathan