2016-04-01 10 views
2

'dan gelen değere göre satırı etkinleştirme/devre dışı bırakma Bu, Eureka adı verilen Swift açık kaynak projesiyle ilgili bir sorudur ve buradaki soruları burada izlediklerinden bu soruyu burada SO üzerinde gönderiyorum.MultipleSelectorRow

MultipleSelectorRow olan ve bunu takiben TextRow olan bir form oluşturdum. Bu TextRow varsayılan olarak devre dışıdır. MultipleSelectorRow, seçeneklerin bir listesini gösterir. kullanıcı son seçenek, sevk veya Diğer seçerse

form 
    +++ Section() 
    <<< MultipleSelectorRow<String>("Lead") { 
     $0.title = "Lead" 
     $0.options = ["Yahoo", "Yelp", "Google", "Referral or Other"] 
    } 
    .onPresent { from, to in 
     to.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: from, action: #selector(ViewController.multipleSelectorDone(_:))) 
    } 
    <<< TextRow("Referral") { 
     $0.title = "Note Referral or Other" 
     $0.disabled = "$Lead != 'Referral or Other'" 
    } 

İstediğim, ben TextRow etkin olmasını istiyoruz.

Şu andaki uygulamam bunu yapmıyor. Devre dışı kalır. Burada neyi yanlış yapıyorum?

cevap

2

MultipleSelectorRow<T>, Set<T> bir değer türüdür ve bir String değeri yanlış bir şekilde beklediğiniz gibi görünüyor.

sen ... Bu yüklemi

$0.disabled = "NOT $Lead contains 'Referral or Other'" 

veya alternatif .. denemek gerektiğini söyledikten sonra

$0.hidden = Condition.Function(["Lead"]) { form in 
     if let r1 : MultipleSelectorRow <String> = form?.rowByTag("tag1") { 
      return r1.value.contains("Referral or Other") == false 
     } 
     return false 
}