본문 바로가기

Programming/iPhone, Xcode

iOS - UIWebView 에 back button 기능 구현

UIWebView 를 View Controller 에 추가하게 되면, 우리가 사용하는 모바일 Safari 브라우저처럼 back button 이 제공되지 않는다. 이를 stack 을 이용하여 실제로 구현하려고 하면 머리가 아픈데, 이미 이런 기능이 있지 않을까 라고 생각 했는데, 이미 있었다. :)



UIWebView Class Reference 를 살펴보면 아래와 같은 Instance method 를 발견 할 수 있다.


goBack

Loads the previous location in the back-forward list.

- (void)goBack

Availability

  • Available in iOS 2.0 and later.

실제로 back button 을 이용하여 back 기능을 구현하려면 UIWebView 를 사용하는 View Controller 클래스에서 UIWebViewDelegate 를 위임받으면 된다.

MyViewController.h

@interface MyViewController : UIViewController <UIWebViewDelegate> {
    IBOutlet UIWebView myWebView;
} 
@property (nonatomic, retain) IBOutlet UIWebView myWebView;



MyViewController.m

@implementation MyViewController {

@synthesize myWebView;

...


- (void)webViewDidFinishLoad {

    backButton.enabled = (myWebView.canGoBack);

}

- (void) backButtonClicked :(id)sender {

    [myWebView goBack];

}


아래 그림처럼 Back 버튼에 backButtonClicked 이벤트를 등록해 주면 된다.