2016-03-21 19 views
1

'dan değer metin alanını alma UITableView, sunucu yanıtı json'undan soru verilerini gösterecek bir özel hücreye sahip oldu, Bu yüzden, 1 UILabel, 3 UIButtons (Hangi radyo düğmesi olacak) ve 1 UITextField aldım böyle ilan et.Form tabanlı UITableView

enter image description here

her bir tablo hücresinde aşağıda textfield sözler ve radyo düğmesi (Evet, Hayır, N/A) sadece UIButtons olmasıdır.

Gördüğünüz gibi anket soruları bunlar, UITableView olarak ayarlayın.

Sunucudan 21 Soru yanıtı varsa, her başlıkta soru başlığı, seçim düğmeleri ve açıklamalar gösteren 21 satır göstereceğim.

Peki, sorun nedir, kullanıcı gönder düğmesini tıklattığında her bir tablo hücresinden verileri nasıl alacağımı bilmiyorum.

i gönderdiğinizde, ben bu gibi verileri elde etmek istiyorum: [[Dize: String], [dize: String], ...]

Örnek: 1. ve 2. masada anket yapmak varsayalım Hücre, bu gibi verileri almak istiyorum. Eğer kullanıcı doldurmadıysa üçüncü bir boş veri olduğunu göreceksiniz.

[ 
    ["QuestionID": 1,"Type":"Yes","Remark":"Nothing special everything good"], 
    ["QuestionID": 2,"Type":"No","Remark":"Yeah,it will be alot helpful"], 
    ["QuestionID": 3,"Type":"","Remark":""] 
] 

Herhangi Yardım? Lütfen? Veri almak ve biz anket gönderdiğinizde bile kullanıcı daha hiç dolgu gibi tasarruf nasıl.

cevap

2

NSIndexPath'u alarak UITextField veya UIButton'u tanımlayabilirsiniz. Sadece addTarget'a ihtiyacınız var ve mevcut NSIndexPath'u al ve oradan UITableViewCell'a tıkla. için

İlk addTargetUITextFieldcellForRowAtIndexPath yılında:

func textChange(textField: UITextField){ 

    var cellIndexPath = tableViewSearch.indexPathForCell(textField.superview!.superview! as! UITableViewCell)! 
    let cell = tableViewSearch.cellForRowAtIndexPath(cellIndexPath!) as! SearchRatingCell 
    cell.textFieldSearch.text = textField.text! 
} 

Güncellemesi (UIButton):

cell.textFieldSearch.addTarget(self, action: "textChange:", forControlEvents: UIControlEvents.EditingChanged) 

Sonra aşağıda işlevinde click olayı işleyebilir

cell.yesButton.addTarget(self, action: "searchByRating:", forControlEvents: UIControlEvents.TouchUpInside) 

Özel Yöntem:

func searchByRating(sender: UIButton){ 

    let cellIndexPath = tableViewSearch.indexPathForCell(sender.superview!.superview! as! SearchRatingCell)! 
    let cell = tableViewSearch.cellForRowAtIndexPath(cellIndexPath!) as! SearchRatingCell 
    cell.yesButton.selected = true 
} 

Herhangi bir karışıklık varsa bana, bildirin.

+0

Ayrıca "UIButton" için de aynı şeyi yapabilirsiniz. Sadece hedefi uygula ve kendi özel yöntemini yap. @ 6245Htarwara –

+0

@ 6245Htarwara Düzenlenmiş cevabı kontrol edin! –

+0

Bana örnekle paylaşın Hala kullanıcı tipinin tam olarak nerede kaybolduğunu özel uitableviewcell'in metin alanından nasıl alacağımı bilmiyorum.Lütfen yardım edin –