2009-03-10 5 views
1

UIWebView를 사용하여 도움말 파일을 표시하는 앱을 만들고 있습니다. 웹보기는 그것iPhone SDK : UIWebView

- (void)viewDidLoad { 

방법이라고 할 때 자신의보기 DocViewController ...에 사는 적절한 문서의 페이지를로드

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]]; 

를 사용합니다. 그러나 첫 번째 페이지가로드되면 뷰는 정적이되고 docPage가 변경되고 뷰가 전환 될 때 새 페이지가로드되지 않습니다. webView를 지울 수있는 방법이있어서 새로운 페이지가 요청되면로드됩니까?

편집 :
첫 번째 대답은 나에게 혼란을줍니다. 마찬가지로 루틴은 작동합니다. 단지 번만으로 작동한다는 것입니다. 보기가로드 된 후이보기가 다시 켜지면 요청한 html 페이지가 다를 때 처음에는 변경되지 않습니다. 뷰는 항상 요청 된 첫 번째 html 페이지를 표시하고 새 요청을로드하지 않습니다.

- (void)viewDidLoad { 

    docPage = [NSString stringWithFormat: @"%d", hexpage]; 

    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]]; 

} 
+0

프로그래밍 방식으로 새 요청을로드하고 있습니까, 아니면 웹보기에서 상호 작용 (예 : 하이퍼 링크 탭)에서 시작 했습니까? 후자라면 경로에 문제가있을 수 있습니다. 따라서 baseURL을 사용하여 웹 루트가 웹 뷰어에 있는지 확인하십시오. – nduplessis

+0

상호 작용이 필요하지 않습니다. 모두 프로그래밍되었습니다. 코멘트 주셔서 감사합니다! – Alan

답변

3

viewDidLoad은보기가 해제되고 다시로드해야하는 경우에만 한 번 호출됩니다. 일반적으로보기 컨트롤러가 메모리 부족 경고를 수신하는 경우에만 발생합니다. viewDidLoad 대신보기가 화면에 표시 될 때마다 호출되는 viewWillAppear:에 해당 코드를 넣으십시오.

2

base을 같은 HTML이 들어있는 디렉토리에 NSURL 객체를 전달하고

NSString *path = [[NSBundle mainBundle] pathForResource:@"myfile" 
               ofType:@"html"]; 
NSString *html = [NSString stringWithContentsOfFile:path 
              encoding:NSUTF8StringEncoding 
               error:nil]; 

편집 같은 것을 함께 HTML 문자열을로드

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 

사용해보십시오 : 또한 만들 하이퍼 링크가 target = "_ blank"와 같은 새 창에서 열려고하지 않는다면 웹보기에서는 열지 않습니다.