UINavigationBarのタイトルフォントサイズを変える

同ビューのフォントサイズは視認性を優先してかなり大きめのフォントサイズが使われている。しかし年月日等を他のボタン等と一緒に表示しようと思うと少しフォントサイズを小さくしたいと思うことも多い。
なので変更しようと思ったのだが、対象となるUINavigationController.navigationItemにはUINavigationItem型であり、FontsizeプロパティもFontプロパティも公開されていないため、このままではどうしようも無い。

調べた所タイトルのフォントを変更するにはUINavigationItem.titleViewプロパティでView(UILabel)を置き換えるしかないようだ。

UINavigationItem.titleViewを別なラベルで置き換える(UINavigationController viewDidLoad)
    UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:17.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter; //iOS6ではdeprecated
    label.textColor =[UIColor whiteColor];
    label.text = @"2012年10月08日";
    self.navigationItem.titleView = label;
実行結果

変更前

titleView置換え後 (17ポイントのフォントに変更)

ちなみにUINavigationItem.titleViewはviewDidLoad時にはnilであり、ビューとしてカスタマイズすることすらできない。