Изменение текста UITextView из одного представления в другое

#ios #iphone #swift #xcode

#iOS #iPhone #swift #xcode

Вопрос:

У меня проблема с моим кодом. Когда я ввожу UITextField в другом контроллере представления, значение сохраняется в переменной (var oraDa: String!). Я хотел бы изменить текст UITextView, если введенный текст равен нулю или не равен нулю. Вот код:

 var oraDa: String!
var oDF: String!

override func viewDidLoad() {
    super.viewDidLoad()

    oDF = "From "

    if oraDa == nil {

        oDF = nil

    }

    finalText.text = "(oDF!)"   "(oraDa!)"

}
  

Я хочу, чтобы при

oraDa != nil

oDF равно «From»

но если oraDa равно нулю, oDF равно нулю

Комментарии:

1. Это немного сбивает с толку. Что вы подразумеваете под «когда oraDa пуста»? В чем разница между «пустым» и «нулевым» в вашем случае?

2. @BenjaminLowry — это то же самое, извините, я отредактировал вопрос

3. Для меня это все еще не имеет смысла. Вы говорите, что хотите, чтобы oDF был равен «From», когда oraDa == nil, но затем вы говорите, что хотите, чтобы oDF был равен нулю, когда oraDa равно нулю в следующей строке. Это одно и то же. Вы хотите сказать, что хотите проверить строковое значение «nil»?

4. @BenjaminLowry Вы правы, я изменил вопрос в другой раз … так что извините

5. @BenjaminLowry И последнее, что, если бы мне пришлось добавить другие параметры в «finalText»? Например, «finalText.text = «(intestazione!)» «(oDF!)» » (oraDa!)»»?

Ответ №1:

В: finalText.text = "(oDF!)" "(oraDa!)" вы принудительно разворачиваете эти параметры строки. Если это nil так, ваш код выйдет из строя.

Если вы вводите `oraDa’ из другого представления, тогда вы должны выполнить свою логику следующим образом:

 override func viewDidLoad() {
   super.viewDidLoad()

   if oraDa == nil || oraDa == "" {

       oDF = nil
       finalText.text = "";
   } else {
       oDF = "From "
       finalText.text = "(oDF!)"   "(oraDa!)"
   }
}
  

Комментарии:

1. Черт возьми, опередил меня

2. И последнее, что, если бы мне пришлось добавить другие параметры в «finalText»? Например, «finalText.text = «(intestazione!)» «(oDF!)» » (oraDa!)»»?

3. Рад, что вы поняли это! Получайте удовольствие от кодирования!

Ответ №2:

Решен мой собственный вопрос о том, как добавить другие параметры:

 var intestazioneF: String!
var oDF: String!

if intestazione == nil || intestazione == "" {

        intestazioneF = ""

    } else {

        intestazioneF = "n n"
        finalText.text = "(intestazione!)"   "(intestazioneF!)"

    }

if oraDa == nil || oraDa == "" {

        oDF = nil

    } else {

        oDF = "From "
        finalText.text = "(intestazione!)"   "(intestazioneF!)"   "(oDF!)"   "(oraDa!)"

    }
  

и если вы хотите добавить еще один параметр:

 var intestazioneF: String!
var nomeFestaF: String!
var oDF: String!

if intestazione == nil || intestazione == "" {

        intestazioneF = ""

    } else {

        intestazioneF = "n n"
        finalText.text = "(intestazione!)"   "(intestazioneF!)"

    }

if nomeFesta == nil || nomeFesta == "" {

        nomeFestaF = ""

    } else {

        nomeFestaF = "n n"
        finalText.text = "(intestazione!)"   "(intestazioneF!)"   "(nomeFesta!)"   "(nomeFestaF!)"

    }

if oraDa == nil || oraDa == "" {

        oDF = nil

    } else {

        oDF = "From "
        finalText.text = "(intestazione!)"   "(intestazioneF!)"   "(oDF!)"   "(oraDa!)"

    }
  

Надеюсь, это поможет другим людям

Благодаря Билли Карузо