我有一个从UITableView控制器推送的DetailView控制器。我想要做的是从UITableViewController推送时更改标题的字体。我将向您展示我所在的segue的代码行。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//push segue identifier 'showArrayDetail'
if ([[segue identifier] isEqualToString:@"ShowDetail"])
{
NSString *object = nil;
[[segue destinationViewController] setDetailLabelContents:object];
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
DetailViewController *destViewController = segue.destinationViewController;
destViewController.climbName = climbs[indexPath.row];
destViewController.title = [NSString stringWithFormat:@"%@ Details", destViewController.climbName];
destViewController.title = [UIFont fontWithName:@"Chalkduster" size:17];
}
}
最后一行是我尝试更改字体的地方,它给了我这个警告:
FourthTableViewController.m:134:34: Incompatible pointer types assigning to 'NSString *' from
'UIFont *
有没有办法解析标题或解决这个问题?当我在UITableViews等中更改我的字体时,我也在使用相同的方法。当你对标题进行更改时,我不会这样做。
由于
答案 0 :(得分:0)
你实际上无法改变这样的字体。您刚刚创建了UIFont的新实例,而不是NSString实例。您需要了解更多here的归因字符串。例如:
NSFont *font = [NSFont fontWithName:@"Palatino-Roman" size:14.0];
NSDictionary *attrsDictionary =
[NSDictionary dictionaryWithObject:font
forKey:NSFontAttributeName];
NSAttributedString *attrString =
[[NSAttributedString alloc] initWithString:@"strigil"
attributes:attrsDictionary];