2011-04-20 4 views
3

나는 RSS 피드를 파싱하고 결과를 테이블에로드하고있다. 사용자가 기사를 클릭하면 웹 페이지로 연결됩니다. 순간앱을 떠나지 않고 didSelectRowAtIndexPath를 사용하여 웹 페이지를로드하는 방법은 무엇입니까?

내가 사용하고 있습니다 :

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:story]]; 

문제는이 사파리를 시작하고 내 응용 프로그램을 종료한다는 것입니다.

내 앱에서 웹 페이지를 열어 볼 수있는 방법이 있습니까? 웹 페이지를 닫고 사용자를 다시 테이블로 반환하는 "완료"버튼과 함께 웹 페이지를 표시하고 싶습니다.

모든 도움말 (및 코드 예)을 높이 평가합니다.

답변

3

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에 연결하여 탐색 표시 줄에 활동 표시기를 표시하거나 표시하여 사용자가 페이지가로드되는 동안 어떤 일이 발생하고 있음을 알 수 있습니다.

+0

감사합니다. chilitechno. 나는 약간의 초보자이기 때문에 당신의 추천은 조금 혼란 스럽다. 이 스위치가 새 NIB에서 전환되거나 테이블을 오버레이 할 하위보기를 만들까요? 하나의 웹 페이지 (표의 각 행마다 하나씩) 만 표시하면 Safari의 모든 기능이 필요하지 않습니다. 어떤 예제 코드를 게시 할 수 있습니까? 많은 감사합니다. – Jeremy

+0

몇 가지 예제 발췌 문장으로 답변을 업데이트했습니다. 사용자가 웹 페이지 콘텐츠를 보았을 때 뒤로 버튼을 누를 수 있도록 새로운보기 컨트롤러에 내용을로드하는 것이 좋습니다. –

+0

앱의 웹보기 내부에 표시 할 항목을주의하십시오. 당신이 보여줄 수있는 것에 관해서는 몇 가지 제한이 있습니다. 예를 들어 나열된 것처럼 [[[UIApplication sharedApplication] openURL : [NSURL URLWithString : story]]; 함수를 사용하여 Safari 앱 자체에 "기부"페이지를 표시해야합니다. 당신은 아마도 걱정할 필요가 없을 것입니다. 그러나 이것에 약간의 제한이 있다는 것을 압니다. – binnyb

관련 문제