2012-03-02 3 views
0

스토리 보드가 디자인 한 UIWebView가 포함 된 UIScrollView가 포함 된 뷰가있는 UIViewController "PdfViewController"가 있습니다. Xcode 4.2에서 ARC와 스토리 보드를 사용하고 있습니다. PdfViewController를 초기 ViewController로 시작하면 webview가 예상대로 표시됩니다. PDF 목록에서 PDF를 표시하려면 PdfViewController가 필요합니다. 그래서 NavigationController는 문서 제목이있는 TableViewController를 포함하고 있습니다. "tableView didSelectRowAtIndexPath"로 PdfViewController를 표시하려고하면보기가 검정으로 유지되고 선택한 문서가로드되지 않습니다. Xcode에서 오류 메시지가 없습니다.UINavigationController 스택 맨 위의 UIWebView가 표시되지 않습니다.

PdfViewController의 viewDidLoad 및 viewWillAppear가 호출됩니다. 여기

PdfViewController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    PdfViewController *pdfViewController = [[PdfViewController alloc]init]; 
    [pdfViewController setFileName:@"test"]; 
    [self.navigationController pushViewController:pdfViewController animated:YES]; 
} 

- 그것은의 초기화는 문제가 PdfViewController이 자체로 corrsponding 펜촉을로드하지 않는다는 것입니다 보인다. TableViewCell에서 밀치면 PdfViewController가 올바르게로드됩니다. 여기 알고

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self.navigationController.viewControllers.lastObject setFileName:@"test"]; 
} 

유일한의 viewDidLoad 싶게 viewWillAppear가있는 tableView didSelectRowAtIndexPath의 실행 전에 호출됩니다, 그래서 PDF는 viewDidAppear에로드 할 수 있습니다

나는에 코드를 변경했습니다.

+0

아무것도는 분명히 잘못된 밖으로 이동하지 않습니다. 'PdfViewController'가 초기보기 일 때 제대로 표시되는지 확인하는 데 사용한 작업 코드를 게시 할 수 있습니까? – gregheo

답변

1

Xcode 4.2 이상에서는 segue를 통해 두 개의보기 컨트롤러간에 데이터를 전달할 수 있습니다.

How to pass prepareForSegue: an object

귀하의 코드는 다음과 같을 수 있습니다 :

확인하시기 바랍니다

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
    if ([[segue identifier] isEqualToString:@"__YOUR_SEGUE_STRING__"]) { 
    PdfViewController *pdfViewController = 
    (PdfViewController*)[segue destinationViewController]; 
    // 
    // write your code here 
    // 
    [pdfViewController setFileName:@"test"]; 
    } 
} 
관련 문제