使用Swift的TableViewCell监听器

时间:2016-08-07 22:28:12

标签: ios swift xcode uitableview

晚安!

我有一个关于Xcode(Swift)和TabelView布局的具体问题。

我的应用程序到目前为止1在此Container中的容器内查看是一个嵌入的UITableViewController,它显示了一个很好的静态表视图。

我的错误是我在用户点击其中一个表格视图单元格时如何注册?

方法:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
     //CODE TO BE RUN ON CELL TOUCH
}

对我不起作用 - 不调用该方法,此方法内的警报未显示。

也许是一个错误的文件结构?在我的主要故事板中,我将Swift文件与UITableViewController连接,后者位于主视图控制器的容器内。文件代码是基本的:

import UIKit

class test: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}

如何在用户点击TableViewCell时注册?例如显示警报?

请帮帮我,我是iOS开发的新手。

谢谢!

以下是我项目结构的两张图片:

storyboard-structure

tableView-structure

2 个答案:

答案 0 :(得分:0)

正常运行的表视图需要三个表视图数据源方法。确保添加它们。

func numberOfSectionsInTableView(tableView: UITableView) -> return Int number of section 
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) ->return Int number of rows in section 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> return UITableViewCell that populate the cell data 

希望有所帮助!!

答案 1 :(得分:0)

一个非常愚蠢的错误......代码绝对正确 - 问题发生在main.swift文件中,即容器中的文件。

在容器上方,我添加了一个searchBar,并使用以下代码通过在搜索栏外单击来隐藏键盘:https://stackoverflow.com/a/27079103/3849220

此代码在整个View中崩溃了我的触摸事件 - 也在容器“上方”...在tableView函数之前调用了dismissKeyboard()。

@ Paulw11 非常感谢您的示例项目!它帮助我真正理解逻辑并搜索错误。谢谢!

我替换了代码并编写了一个自己的脚本,通过单击“完成”按钮来隐藏键盘。现在它有效!

谢谢!