2012-03-02 7 views
0

私は、UIWebViewを含んでおり、ストーリーボードによって設計されたUIScrollViewを含むビューを持つUIViewController "PdfViewController"を持っています。私はXcode 4.2でARCでストーリーボードを使用しています。 PdfViewControllerを初期ViewControllerとして起動すると、webviewが期待通りに表示されます。 私はPDFのリストからPDFを表示するPdfViewControllerをします。そこで、ドキュメントタイトルを持つTableViewControllerを含むNavigationControllerを作成しました。 "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経由で2つのView Controller間でデータを渡すことができます。

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"]; 
    } 
} 
関連する問題