したがって、アプリケーションのDocumentsフォルダの内容を表示するUITableViewがあります。そのフォルダには、1.txt、2.txt、3.txtという9つのテキストファイルがあります。選択した行を取得することができましたが、選択したファイルに対応するtxtをロードする必要があります。例を挙げると、2.txtをタッチすると、2.txtファイルの詳細ビューが開きます。それが私が働くことができない部分です。事前に感謝:)UITableViewがタップされたときにテキストファイルをロードする
答えて
がわかり、それを行う方法は次のとおりです:ここに は、私はそれを行うために使用しているコードで、私はここで変更
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.txt",indexPath.row+1]];
NSString *fileText = [NSString stringWithContentsOfFile:fileName]; //< this line actually reads the text in the file at the path provided
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
detailViewController.strName = fileText;
[self.navigationController pushViewController:detailViewController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[detailViewController release];
}
お知らせ:
detailViewController.labelName = fileText;
へ:
detailViewController.strName = fileText;
そして今、f ileが表示されます:D ありがとう!
あなたがテーブルビューのデリゲートメソッドが呼び出された行を選択した場合:このメソッドの内部
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
あなたがこの方法でファイル名を構築することができます。
NSString *fileName = [DocumentsFolder stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.txt",indexPath.row+1]];
予告どのように私はindexPath.row(つまり、選択されたセルの行番号)を使用してファイル名を構築しました。最初の行(0で索引付けされている)がファイル名1.txtにつながっているとします。
このファイルをロードできます。 didSelectRowAtIndexPathで
:ファイルが一緒にパッケージされている場合(テキストファイルは実行時に作成されている場合はドキュメントフォルダを使用し、NSBundleの方法だろう
NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"txt"]; //< or getting the file from the documents folder
NSString *fileText = [NSString stringWithContentsOfFile:path]; //< this line actually reads the text in the file at the path provided
detailViewController.detailString = fileText;
[self.navigationController pushViewController:detailViewController animated:YES];
:あなたのような何かをしたい方法
detailLabelはUILabelまたはUITextFiあるdetailLabel.text = self.detailString;
:アプリ)
はその後detailViewControllerでviewDidLoadメソッドでは、あなたのようなものを入れたいですあなたがそれを編集可能にするかどうかによって異なります。
私は2つの例を混ぜ合わせて、NSLogのテキストの内容を見ることができましたが、DetailViewControllerではできませんでした。 – pmerino
申し訳ありませんサンプルで間違いました。あなたのdetailViewControllerがサブクラスであると思いますか? Interface Builder(またはコード)を使用してUILabelを追加し、それをIBOutletにリンクする必要があります。また、retainプロパティ(detailString)を追加する必要があります。 –
私は2つの例を混ぜ合わせて、NSLogのテキストの内容を見ることができましたが、DetailViewControllerでは表示しません。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.txt",indexPath.row+1]];
NSString *fileText = [NSString stringWithContentsOfFile:fileName]; //< this line actually reads the text in the file at the path provided
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
detailViewController.labelName.text = NSString = [stringWithContentsOfFile:fileName];
[self.navigationController pushViewController:detailViewController animated:YES];
NSLog(@"didSelectRowAtIndexPath: row=%d", indexPath.row);
NSLog(fileText);
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[detailViewController release];
}
- 1. ボタンがタップされたときにテキストフィールドが表示される
- 2. UISearchControllerのUISearchBarがタップされたときに右にスリップする
- 3. ボタンをタップしたときにUIPickerViewが表示される
- 4. UITableViewボタンが押されたとき
- 5. jQueryサムがロードされたときにURLをロードする
- 6. IPhoneアプリケーションページがロードされたときにUITableViewの指定された位置までスクロールします
- 7. テキストファイルを開いたときにC++が上書きされる
- 8. アプリケーションがロードされる前にUITableViewをスクロールする
- 9. 画像がロードされたときではなく、要素がクリックされたときにロードする
- 10. ビューコントローラがロードされたときにサウンドが再生される
- 11. タップしたときにnavbarが表示されない
- 12. タップしたときにチェックマークが表示されない
- 13. UITableViewがロードされていません
- 14. 画像がタップされたときにナビゲーションバーを非表示にする方法
- 15. ナビゲーションバーで戻るボタンがタップされたときの検出
- 16. コンテナビュー親ビューでボタンがタップされたときにtextField値が失われる
- 17. ブラウザがロードされたときにdivが親をエスケープする
- 18. アプリがロードされた後に画像が読み込まれるUITableView
- 19. UITableViewがスクロールしたり、ARCでタップしたりするとクラッシュしますか?
- 20. TableViewControllerCellがタップされたときに新しいTableViewControllerを表示する方法
- 21. スウィフト:UITextFieldがタップされたときを認識
- 22. スクロールするまでデータがUITableViewにロードされない
- 23. NSoperationQueueが開始される前にUITableViewが再ロードされます
- 24. Jquery - ページがロードされたときにサイドバーが開きます
- 25. コンテンツがロードされたときにjQueryが検出する
- 26. 最初にタップされたときに何か違うことをするUIButton
- 27. テーブル行の「削除」ボタン(タップまたはスワイプの後に表示される)がタップまたは解除されたときにカスタムナビゲーションバーボタンのタイトルを設定する
- 28. SVG:ドキュメントがロードされたときにスクリプトを実行する
- 29. View Controllerがロードされたときにアクションを開始する
- 30. ページがロードされたときに関数を実行する
これまでのところ(コード)は何ですか? – aqua