2014-10-28 21 views
6

Mi piacerebbe cambiare il carattere nella barra di navigazione. Tuttavia il seguente codice non funziona, causa l'arresto anomalo dell'app.Cambia carattere nella barra di navigazione in Swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Lato-Light.ttf", size: 34)!] 

    return true 
} 

Sto ottenendo il seguente errore:

errore fatale: unexpectedly found nil while unwrapping an Optional value(lldb)

ho infatti aggiunto il tipo di carattere Lato-Light.ttf al mio progetto e quindi dovrebbe essere in grado di trovarlo .

risposta

15

UIFont() è un initalizer disponibile, potrebbe non riuscire a causa di diversi motivi. Uno scartare forzato utilizzando ! arresta l'app.

Meglio inizializzare separatamente e controllare per il successo:

if let font = UIFont(name: "Lato-Light.ttf", size: 34) { 
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: font] 
} 

e verificare se il file di carattere è incluso nelle risorse fascio.

Common Mistakes With Adding Custom Fonts to Your iOS App

+0

Ho provato ad aggiungere un println ("Codice esegue") e non stampa alla console in modo così chiaro che parte del codice non viene eseguito. Sto usando il carattere nella mia app, quindi so che è lì. Mi chiedo perché non riesca a trovare il carattere? –

+0

Controllare la destinazione del progetto e verificare se è inclusa nelle risorse del pacchetto. – zisoft

+0

Come posso verificare se è incluso? Scusa, sono un po 'nuovo per questo. –

2
import UIKit 

class TestTableViewController: UITableViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     configureView() 

    } 

    func configureView() { 

     // Change the font and size of nav bar text 
     if let navBarFont = UIFont(name: "HelveticaNeue-Thin", size: 20.0) { 
      let navBarAttributesDictionary: [NSObject: AnyObject]? = [ 
       NSForegroundColorAttributeName: UIColor.whiteColor(), 
       NSFontAttributeName: navBarFont 
      ] 
      navigationController?.navigationBar.titleTextAttributes = navBarAttributesDictionary 
     } 
    } 

} 
Problemi correlati