1

私はiOS/Objective Cでコーディングしており、テーブルビューにデータを入力するインスタンスがあり、行がタップされると詳細ビューコントローラーがロードされます。didSelectRowAtIndexPath メソッドで、詳細ビュー コントローラーに渡されるパラメーターを設定し、次にそのビュー コントローラーのビューを設定します。

コード:

 newsArticleText = [[newsArray objectAtIndex:indexPath.row] objectForKey:@"article"];

prepareForSegue メソッドでは:

NewsDetailController *newsDetailController = [segue destinationViewController];

newsDetailController.articleText = newsArticleText;

詳細 ViewController のヘッダー ファイル:

@interface NewsDetailController : UIViewController {

NSString *articleText;

}

@property (nonatomic,copy) NSString *articleText;

詳細 ViewController の実装ファイルで、パラメーターの値を設定します。

(NewsView*)self.view).nArticleText = articleText;

最後に、親が詳細 ViewController であるビューで:

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString: nArticleText];


    CFAttributedStringSetAttribute((__bridge CFMutableAttributedStringRef) attrString, CFRangeMake(0, attrString.length), kCTFontAttributeName, font);

    /* Get a framesetter to draw the actual text */
   CTFramesetterRef fs = CTFramesetterCreateWithAttributedString((__bridge  CFAttributedStringRef) attrString);
   CTFrameRef frame = CTFramesetterCreateFrame(fs, CFRangeMake(0, attrString.length), pathToRenderIn, NULL);

データ ソースは JSON 配列です。詳細ビュー コントローラとカスタム ビューをロードするセグエが実行された後、最初のレコード/オブジェクトのみが表示されます。テーブル ビューに戻って 2 番目または 3 番目のレコードを選択すると、値を保持する変数はコンソールに表示されると正しい値になりますが、画面には何も表示されません。

大家さんアドバイスください!-TU

4

0 に答える 0