Изменение навигатораBar.title в зависимости от режима / случая? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть viewController, который имеет три режима / три режима.

Имеется режим «Создать нового человека», режим «Показать человека» и, наконец, режим «Редактировать человека».Это все работает нормально - но я не могу установить навигационный файл bar.title в соответствии с режимом / случаем.

Вот соответствующий код:

private func modeUpdate() {
   let createNewPerson:[NSAttributedString.Key: Any] = [NSAttributedString.Key(rawValue: NSAttributedString.Key.foregroundColor.rawValue):UIColor.blue, NSAttributedString.Key(rawValue: NSAttributedString.Key.font.rawValue):UIFont(name:"Create New Person", size: 17)!]
   let showPerson:[NSAttributedString.Key: Any] = [NSAttributedString.Key(rawValue: NSAttributedString.Key.foregroundColor.rawValue):UIColor.blue, NSAttributedString.Key(rawValue: NSAttributedString.Key.font.rawValue):UIFont(name:"", size: 17)!]
   let editPerson:[NSAttributedString.Key: Any] = [NSAttributedString.Key(rawValue: NSAttributedString.Key.foregroundColor.rawValue):UIColor.blue, NSAttributedString.Key(rawValue: NSAttributedString.Key.font.rawValue):UIFont(name:"Edit Person", size: 17)!]


    switch mode {
    case .create:
        actionButton.title = "Save"
        personName.isEditable = true
        navigationController?.navigationBar.titleTextAttributes = createNewPerson
        question.isEditable = false
        personAnswer.isEditable = true
        extraIdentifier.isEditable = false
        extraIdentifierAnswer.isEditable = true

    case .show:
        actionButton.title = "Edit"
        navigationController?.navigationBar.titleTextAttributes = showPerson
        personName.isEditable = false
        question.isEditable = false
        personAnswer.isEditable = false
        extraIdentifier.isEditable = false
        extraIdentifierAnswer.isEditable = false

    case .edit:
        actionButton.title = "Save"
        navigationController?.navigationBar.titleTextAttributes = editPerson
        personName.isEditable = true
        question.isEditable = false
        personAnswer.isEditable = true
        extraIdentifier.isEditable = false
        extraIdentifierAnswer.isEditable = true
    }
}

Все это компилируется, но когда я вхожу в одно из трех случаев на моем устройстве, я получаю: 'Тема 1: Неустранимая ошибка: Неожиданно найденnil при развертывании необязательного значения 'on the line' let createNewPerson: [NSAttributed .... '

Кто-нибудь знает, почему это происходит?

Спасибо!

1 Ответ

0 голосов
/ 15 ноября 2018

попробуйте self.navigationItem.title = "text"

...