Ios 当我第一次打开应用程序时,我的导航栏字体不会改变我的自定义字体

Ios 当我第一次打开应用程序时,我的导航栏字体不会改变我的自定义字体,ios,swift,uifont,Ios,Swift,Uifont,当我第一次打开应用程序时,我的导航栏字体不会改变,但当我转到另一个页面并返回页面时,字体会改变。如果导航栏字体始终是正确的字体,您知道如何修复它吗 下面的默认字体。我打开应用程序时就是这样。 我的自定义字体上面当我点击进入一个页面,然后回到这个页面的字体更新 下面是我的应用程序代理代码。任何帮助都会很好:) 我已经解决了这个问题。我在应用程序委派中将代码移到了更高的位置,当我第一次来到页面时,字体正在改变。更新的代码如下。谢谢大家的帮助 func application(_ applicat

当我第一次打开应用程序时,我的导航栏字体不会改变,但当我转到另一个页面并返回页面时,字体会改变。如果导航栏字体始终是正确的字体,您知道如何修复它吗

下面的默认字体。我打开应用程序时就是这样。

我的自定义字体上面当我点击进入一个页面,然后回到这个页面的字体更新

下面是我的应用程序代理代码。任何帮助都会很好:)

我已经解决了这个问题。我在应用程序委派中将代码移到了更高的位置,当我第一次来到页面时,字体正在改变。更新的代码如下。谢谢大家的帮助

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    // NAV BAR COLOR FOR ALL THE NAVS AND THE FONTS BELOW.

    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().barTintColor = .white
    UINavigationBar.appearance().tintColor = blackSupportalColor

    // Navigation Bar Font Below
    let navigationFont = UIFont(name: "MuseoSansRounded-900", size: 17)!
    let navigationLargeTitleFont = UIFont(name: "MuseoSansRounded-900", size: 34)!

    let navigationFontAttributes = [kCTFontAttributeName : navigationFont]
    let navigationLargeFontAttributes = [kCTFontAttributeName : navigationLargeTitleFont]

    UINavigationBar.appearance().titleTextAttributes = navigationFontAttributes as [NSAttributedStringKey : Any]
    UINavigationBar.appearance().largeTitleTextAttributes = navigationLargeFontAttributes as [NSAttributedStringKey : Any]
    UIBarButtonItem.appearance().setTitleTextAttributes(navigationFontAttributes as [NSAttributedStringKey : Any], for: .normal)

这通常是因为您没有将它们包括在Xcode项目中

您可以点击此链接,该链接将告诉您如何添加它们:


该指南适用于Swift 3,但Xcode 9的流程仍然相同。

我已经解决了这个问题。我在应用程序委派中将代码移到了更高的位置,当我第一次来到页面时,字体正在改变。更新的代码如下。谢谢大家的帮助

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    // NAV BAR COLOR FOR ALL THE NAVS AND THE FONTS BELOW.

    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().barTintColor = .white
    UINavigationBar.appearance().tintColor = blackSupportalColor

    // Navigation Bar Font Below
    let navigationFont = UIFont(name: "MuseoSansRounded-900", size: 17)!
    let navigationLargeTitleFont = UIFont(name: "MuseoSansRounded-900", size: 34)!

    let navigationFontAttributes = [kCTFontAttributeName : navigationFont]
    let navigationLargeFontAttributes = [kCTFontAttributeName : navigationLargeTitleFont]

    UINavigationBar.appearance().titleTextAttributes = navigationFontAttributes as [NSAttributedStringKey : Any]
    UINavigationBar.appearance().largeTitleTextAttributes = navigationLargeFontAttributes as [NSAttributedStringKey : Any]
    UIBarButtonItem.appearance().setTitleTextAttributes(navigationFontAttributes as [NSAttributedStringKey : Any], for: .normal)

我在Xcode项目中有它们。如果你看这两张图片;一个有默认字体,另一个有我的自定义字体。问题是,当我第一次打开应用程序时,页面显示默认字体,但当我离开通行证并返回该页面时,字体会更新为我的自定义字体…如果您在第一个VC上以编程方式分配字体,是否仍会发生这种情况?是的,我也尝试过这种方法。字体适合我的“标题”,只是不适合其他东西。但是一旦我离开页面,回到页面,它就会起作用。谢谢你在这方面的帮助。我通过在app delegate页面上将代码移到更高的位置来解决这个问题。在
AppDelegate
中,您使用哪种方法来调用这个问题?谢谢@agibson007如何直接设置它?@Tom its In-->func应用程序(u应用程序:UIApplication,didfishlaunchingwithoptions launchOptions:[uiapplicationaunchoptions:Any]?)->Bool{我想我们需要更多地了解didFinishLaunchingWithOptions函数。与其他调用相关的调用位置非常重要。@picciano你说得对!我将调用移到了页面顶部,解决了这个问题!!谢谢!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    // NAV BAR COLOR FOR ALL THE NAVS AND THE FONTS BELOW.

    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().barTintColor = .white
    UINavigationBar.appearance().tintColor = blackSupportalColor

    // Navigation Bar Font Below
    let navigationFont = UIFont(name: "MuseoSansRounded-900", size: 17)!
    let navigationLargeTitleFont = UIFont(name: "MuseoSansRounded-900", size: 34)!

    let navigationFontAttributes = [kCTFontAttributeName : navigationFont]
    let navigationLargeFontAttributes = [kCTFontAttributeName : navigationLargeTitleFont]

    UINavigationBar.appearance().titleTextAttributes = navigationFontAttributes as [NSAttributedStringKey : Any]
    UINavigationBar.appearance().largeTitleTextAttributes = navigationLargeFontAttributes as [NSAttributedStringKey : Any]
    UIBarButtonItem.appearance().setTitleTextAttributes(navigationFontAttributes as [NSAttributedStringKey : Any], for: .normal)