0

Я хочу изменить текст и шрифт моего навигационного контроллера.Почему я не могу изменить шрифт моей кнопки в UINavigationController?

У меня есть статический UITableView, и когда пользователь нажимает на одну ячейку - я иду на второй UIViewController через segue.

Я настроил имя Segue в раскадровке и в коде у меня есть:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if (segue.identifier == "myTestSegue") { 
     if segue.destination is MyTest { 
      print("can I see it?") 
     let backButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: self, action: nil) 
     backButton.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "AppleSDGothicNeo-Light", size: 20.0)!], for: UIControlState()) 
     navigationItem.backBarButtonItem = backButton 
     } 
    } 
} 

теперь, когда я запустить приложение и нажмите на ячейку, я вижу в консоли: can I see it?, но текст и шрифт кнопки на следующей панели не изменяется.

Что мне не хватает?

+0

Я настраиваю вашу ту же ситуацию с тем же кодом, и это работает для меня. Итак, у вас что-то происходит вне того, что объяснено выше. – Frankie

ответ

2

вы можете изменить стиль шрифта кнопки назад с помощью этого кода.

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] 
setTitleTextAttributes: 
@{NSForegroundColorAttributeName:[UIColor whiteColor], 
    NSShadowAttributeName:shadow, 
    NSFontAttributeName:[UIFont boldSystemFontOfSize:15.0] 
    } 
forState:UIControlStateNormal]; 
0

Пробуйте этот код;

let customFont = UIFont(name: "Your font Name", size: 17.0) 
    UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFont!], for: UIControlState.normal)