DetailView控制器标题字体问题

时间:2014-05-17 23:02:50

标签: ios objective-c uitableview detailsview uifont

我有一个从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等中更改我的字体时,我也在使用相同的方法。当你对标题进行更改时,我不会这样做。

由于

1 个答案:

答案 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];