2013-05-23 12 views
9

Próbuję dowiedzieć się, jak utworzyć przycisk Wstecz, który pozwala użytkownikowi wrócić do jednej strony. Czytałem przez Apple's Docs (który wciąż przechodzi mi przez głowę) i odkryłem, że muszę skonfigurować canGoBack i . Próbowałem tego, ale z jakiegoś powodu to nie działa. My UIWebView nazwie viewWeb i stworzyłem i dołączone wylot do moich pleców przycisku o nazwie backButton, a także określili ją jako 1. Tu jest mój kod, który napisałem w widoku kontrolera:Przycisk Wstecz w UIWebView

// Back button: 
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (buttonIndex == 1) { 

     [_backButton addTarget:_viewWeb 
         action:@selector(goBack) 
       forControlEvents:UIControlEventTouchDown]; 

     if ([_viewWeb canGoBack]) { 

      NSLog(@"Back button pressed."); 
      [_viewWeb goBack]; 
     } 
    } 

    else return; 
} 

czy ktoś wie co muszę zmienić/dodać, aby to działało?

Odpowiedz

23

actionSheet:clickedButtonAtIndex: jest dla obiektów UIActionSheet, a nie UIButton.

Powinieneś raczej napisać metodę IBAction, który wygląda mniej więcej tak:

- (IBAction)backButtonTapped:(id)sender { 
    [_viewWeb goBack]; 
} 

i podłączyć go do dotykowy wewnątrz akcji z przycisku.

Możesz szukać więcej informacji na IBAction ale to jest prawdopodobnie to, co chcesz

+0

To działało! Wielkie dzięki, miałem wrażenie, że może to być zwykłe wywołanie "IBAction". Wielkie dzięki! – John

+1

Dziękuję bardzo za pomoc – Esha

0

myślę, że powinno być bardziej szczegółowe jak to

- (IBAction)backButtonTapped:(id)sender { 
    if ([_viewWeb canGoBack]) { 
     [_viewWeb goBack]; 
    } 
} 
0

I zmagali się dostać kod pracy dla tej funkcji pisemnej w szybkim tempie i wreszcie oto co wymyśliłem.

@IBOutlet weak var goBackBtn: UIBarButtonItem! 
@IBOutlet weak var goForwardBtn: UIBarButtonItem! 
@IBOutlet weak var itemWebView: UIWebView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let url = NSURL (string: "www.google.com") 
    let requestObj = NSURLRequest(URL: url) 
    itemWebView.loadRequest(requestObj) 

    itemWebView.delegate = self 


    goBackBtn.enabled = false 
    goForwardBtn.enabled = false 
} 


func webViewDidFinishLoad(webView: UIWebView) { 
    goBackBtn.enabled = itemWebView.canGoBack 
    goForwardBtn.enabled = itemWebView.canGoForward 
} 

@IBAction func forward(sender: AnyObject) { 

    itemWebView.goForward() 

} 


@IBAction func back(sender: AnyObject) { 
    itemWebView.goBack() 
}