我在 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;
最后在其父视图是详细视图控制器的视图中:
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 数组。在执行加载详细视图控制器和自定义视图的 segue 之后,仅显示第一条记录/对象。如果我们返回表格视图并选择第二条或第三条记录,则保存该值的变量在控制台中打印时具有正确的值,但屏幕上什么也看不到。
请大侠指教!-TU