我希望将自定义/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`a3823833_MiniPos` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `a3823833_MiniPos`;
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userid` int(4) NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`email` varchar(50) NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*Table structure for table `profile` */
DROP TABLE IF EXISTS `profile`;
CREATE TABLE `profile` (
`userid` int(4) NOT NULL,
`lastName` varchar(50),
`firstName` varchar(50),
`dob` varchar(10),
PRIMARY KEY (`userid`),
CONSTRAINT `profile_fk` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*Table structure for table 'topic'*/
DROP TABLE IF EXISTS `topic`;
CREATE TABLE `topic` (
`topicid` int(4) NOT NULL auto_increment,
`userid` int(4) NOT NULL,
`text` varchar(2000),
`time` datetime,
PRIMARY KEY (`topicid`),
CONSTRAINT `userid_fk` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/* Table structure for table 'post'*/
DROP TABLE IF EXISTS `post`;
CREATE TABLE `post` (
`postid` int(4) NOT NULL auto_increment,
`topicid` int(4),
`userid` int(4) NOT NULL,
`text` varchar(2000),
`time` datetime,
PRIMARY KEY (`postid`),
CONSTRAINT `post_userid_fk` FOREIGN KEY (`userid`) REFERENCES `user` (`userid`),
CONSTRAINT `post_topicid_fk` FOREIGN KEY (`topicid`) REFERENCES `topic` (`topicid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOCK TABLES `user` WRITE;
INSERT INTO USER VALUES (1,'Martynas','MartynPass','Martyn@email.com'),(2,'Syed','SyedPass','Syed@email.com'),(3,'Stephanie','StephPass','Steph@email.com');
UNLOCK TABLES;
LOCK TABLES `topic` WRITE;
INSERT INTO topic VALUES (1, 1,'Topic Number 1','2015-06-11 20:15:00'),(2, 2,'Topic Number 2','2015-06-10 19:15:00'),(3, 3,'Topic Number 3','2015-06-09 18:15:00');
UNLOCK TABLES;
LOCK TABLES `post` WRITE;
INSERT INTO post VALUES (1, 1, 1, 'Very Interesting Topic Number 1','2015-06-11 20:15:00'),(2, 1, 2, 'Agree!','2015-06-11 21:15:00');
UNLOCK TABLES;
类的表作为行。在每一行(自定义UITableViewCell
)中,我有一个控件,用户可以使用该控件来更改该行中某些内容的状态。
为了示例,我们假设每个表行(自定义UITableViewCell
)包含一个按钮和一个标签,我希望点击该按钮来更改标签文本来自&#34活化的"到"停用"来来回回。
*注意**我理解,对于上述场景,我可以使用UITableViewCell
方法来实现,但这对我的实际使用场景不起作用。我使用上面的场景是因为它更简单,并且包含了我需要的核心功能。
通常情况下,如果这不在didSelectRowAtIndexPath
中,我会在UITableViewCell
自定义类中添加IBAction
按钮,并在标签上添加UIViewController
。 IBOutlet
方法会更改IBAction
标签的文字。非常标准的东西。
但是如果将控件嵌入到表格行中,我就无法建立IBOutlet
个连接。我尝试与IBAction
以及IBAction
建立UIViewController
个关联,但它似乎不允许这样做。我该如何设置呢?在我看来,在界面设计中做一个非常有用的事情,所以我认为应该可以吗?
答案 0 :(得分:0)
您可以在cellForRowAtIndexPath
中设置按钮的操作,如下所示:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! YourCustomCell
cell.button.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
return cell
}
func buttonClicked(button: UIButton) {
// get row index
let index = self.tableView.indexPathsForRowsInRect(button.superview!.convertRect(button.frame, toView: self.tableView))
}
答案 1 :(得分:0)
首先,我可以控制 - 从UITableViewCell xib中的按钮拖动到我的头文件以创建IBAction。您只需选择从Outlet到Action的连接。
另一方面,您可以按代码指定按钮的操作。
如果您的按钮属于某个属性,请说出它的self.tableCellButton,添加以下操作:
dismissViewControllerAnimated:completion: