2010-02-23 18 views
8

में UIToolBar पर बैक और फॉरवर्ड बटन अक्षम करें मैं आईफोन के लिए नया हूं। मैं UIWebView में UIToolBar पर बैक (बायां तीर बटन) और फॉरवर्ड (दायां तीर बटन) बटन अक्षम करना चाहता हूं। वेब पेज ले जाने के बाद बैक बटन सक्षम करना चाहते हैं और फिर आगे की आवश्यकता होने पर फॉरवर्ड बटन सक्षम करना चाहते हैं। मेरे ऐप में, मैं इंटरफ़ेस बिल्डर के माध्यम से नीचे की तरफ टूलबार का उपयोग कर रहा हूं। कृपया कोई मेरी मदद करो!UIWebview

उत्तर

28

सक्षम करने के लिए बटन वस्तु के लिए निम्न संदेश भेजें/अक्षम:

// Enable 
[myButton setEnabled:YES]; 

// Disable 
[myButton setEnabled:NO]; 

निर्धारित करने के लिए कि क्या आप इन बटनों आप वेबव्यू पर निम्नलिखित गुण की जाँच करनी चाहिए दिखाना चाहिए:

[myWebView canGoBack]; 
[myWebView canGoForward]; 

आप जब भी कोई उपयोगकर्ता पृष्ठ लोड करता है तो मैं इन्हें जांचना चाहूंगा।

-(void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    // Enable or disable back 
    [myBackButton setEnabled:[myWebView canGoBack]]; 

    // Enable or disable forward 
    [myForwardButton setEnabled:[myWebView canGoForward]]; 

} 
+0

धन्यवाद एक बहुत, अपने कोड मेरी मुद्दों का हल – Sivanathan

4

बस WebView के प्रतिनिधि विधि में से एक में लागू: तो UIWebViewDelegate विधि webViewDidFinishLoad लागू करते हैं करने के लिए।

- (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

pheelicks अलावा का जवाब, मैं निम्नलिखित परिवर्तन करने के लिए बटन वापस निष्क्रिय करने के लिए जब आप अंतिम पृष्ठ जाना जब आप वापस पहले पृष्ठ और आगे बटन की बात आती थी।

WebHistoryItemChangedNotification पर एक पर्यवेक्षक जोड़ा गया।

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(webViewHistoryDidChange:) 
              name:@"WebHistoryItemChangedNotification" 
              object:nil]; 

वेबव्यू हिस्ट्रीडिड चेंज में बटन स्टेटस अपडेट करना।

- (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; 
    } 
} 

देखें: Same is answered here

0

स्विफ्ट के लिए एक दो लाइनर समाधान:

func webViewDidFinishLoad(_ webView: UIWebView) { 
    btnBack.isEnabled = webView.canGoBack 
    btnForward.isEnabled = webView.canGoForward 
}