navigationController pushViewController selector를 통해 실행되는 새로운보기 컨트롤러에서 UIWebView를 사용할 수 있으며 전체 Safari 브라우저를 시작하고 백그라운드에서 앱을 배치하는 툴바 항목을 "Safari에서보기"할 수 있습니다.
일부 예제 코드 조각 :
가정 : (1) 당신은 자격이보기 컨트롤러가 : WebViewController 파일 (같은 .xib로를). (2)이보기 컨트롤러에는 기본보기의 하위보기 인 UIView가 있습니다.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
WebViewController *viewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
viewController.someUrlToLoad = <url for this cell>;
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
}
는 대부분의 경우 일부를 포함 할 것이다 : 누군가가 당신의 tableview에서 셀을 클릭하면
-(void) viewDidLoad {
[super viewDidLoad];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.someUrlToLoad]]];
}
당신은이 컨트롤러를로드 :이보기 컨트롤러의 viewDidLoad 방법에
@interface WebViewController: UIViewController <UIWebViewDelegate> {
UIWebView *webview;
NSString *someUrlToLoad;
}
@property (nonatomic, retain) IBOutlet UIWebView *webview;
@property (nonatomic, copy) NSString *someUrlToLoad;
UIWebViewDelegate에 연결하여 탐색 표시 줄에 활동 표시기를 표시하거나 표시하여 사용자가 페이지가로드되는 동안 어떤 일이 발생하고 있음을 알 수 있습니다.
감사합니다. chilitechno. 나는 약간의 초보자이기 때문에 당신의 추천은 조금 혼란 스럽다. 이 스위치가 새 NIB에서 전환되거나 테이블을 오버레이 할 하위보기를 만들까요? 하나의 웹 페이지 (표의 각 행마다 하나씩) 만 표시하면 Safari의 모든 기능이 필요하지 않습니다. 어떤 예제 코드를 게시 할 수 있습니까? 많은 감사합니다. – Jeremy
몇 가지 예제 발췌 문장으로 답변을 업데이트했습니다. 사용자가 웹 페이지 콘텐츠를 보았을 때 뒤로 버튼을 누를 수 있도록 새로운보기 컨트롤러에 내용을로드하는 것이 좋습니다. –
앱의 웹보기 내부에 표시 할 항목을주의하십시오. 당신이 보여줄 수있는 것에 관해서는 몇 가지 제한이 있습니다. 예를 들어 나열된 것처럼 [[[UIApplication sharedApplication] openURL : [NSURL URLWithString : story]]; 함수를 사용하여 Safari 앱 자체에 "기부"페이지를 표시해야합니다. 당신은 아마도 걱정할 필요가 없을 것입니다. 그러나 이것에 약간의 제한이 있다는 것을 압니다. – binnyb