[英]tapping on table view cell
override func tableView(tableView: UITableView, cellForRowAtIndexPath
indexPath : NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier ("ChecklistItem") as UITableViewCell
let label = cell.viewWithTag(1000) as UILabel
if indexPath.row == 0 {
label.text = "jaswanth"
} else if indexPath.row == 1 {
label.text = "nikhil"
} else if indexPath.row == 2 {
label.text = "krishna"
}
return cell
}
我已經UITableViewController
,我已經在上面的代碼中使用,以顯示在表中的細胞和我有另外UIViewController
當用戶點擊在jaswanth文本(標簽文本) UIViewController
已被改變,並且當NIKHIL被輕觸的文本相同的方式(標簽文本)在UIViewController
已更改
我只有一個UITableViewController
和一個UIViewController
我該怎么做?
您可能希望能夠檢測到何時按下了表格中的這些單元格。 可以使用Mike Welsh的建議通過實現該方法來完成:
func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)這使您能夠知道從NSIndexPath中選擇了哪個單元格。
從現在開始,在我看來,您希望能夠更改由另一個UIViewController控制的文本(在按鈕或字段上)。 可以做到的一種方法是對該UIViewController進行引用,並創建一種方法來更新此文本字段。 如果UITableViewController是子視圖控制器,則可以像調用一樣簡單
override func prepareForSegue(_ segue: UIStoryboardSegue, sender sender: AnyObject?) { if segue.identifier == "SomeStringID" { self.tableViewController = segue.destinationViewController as? UITableViewController self.tableViewController.delegate = self } }
否則,如果控制器與Segue相關聯,也可以通過重寫原始ViewController的prepareForSegue來完成。 通過使用segue.identifier映射到您在StoryBoard中/以編程方式創建的segue,您可以將委托/指針設置為原始UIViewController。
覆蓋func prepareForSegue(_ segue:UIStoryboardSegue,發件人發件人:AnyObject?){\n 如果segue.identifier ==“ SomeStringID” {\n self.tableViewController = segue.destinationViewController為? UITableViewController\n self.tableViewController.delegate =自我\n }\n }
通過引用其他ViewController,您應該能夠定義自己的方法來輕松更改此文本字段
希望這對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.