从SWIFT for ios应用程序中的自定义单元格按钮查看另一个视图

时间:2014-12-27 18:57:30

标签: ios uitableview swift

我在swift编写一个ios应用程序。 我有一个ViewController,它包含一个自定义表视图,它包含一个自定义单元格。每个单元格都有一个开关,激活后,我希望视图能够转换为第二个视图控制器。

我试图通过声明一个storyboard变量,并设置第二个视图控制器,并推送到第二个视图控制器来实现这一点。我在电路板上寻找解决方案,但是它们似乎都没有用。

在class customCellTableViewCell中:UITableViewCell

尝试1:

customCellTableViewCell: UITableViewCell {

var storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let view2: viewController2 = UIStoryboard(name: "Main", bundle:nil).instantiateViewControllerWithIdentifier("View2") as viewController2
switchActive fnc(){

self.window?.rootViewController?.navigationController?.pushViewController(view2, animated: true)

}

…
//rest of code

错误:customCellTableViewCell.Type没有名为storyboard的成员

尝试2:

customCellTableViewCell: UITableViewCell {

init(storyboard: UIStoryboard){
        self.storyboard = storyboard
}

required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
}

var storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let view2: viewController2 = UIStoryboard(name: "Main", bundle:nil).instantiateViewControllerWithIdentifier("View2") as viewController2
switchActive fnc(){

self.window?.rootViewController?.navigationController?.pushViewController(view2, animated: true)

}

…
//rest of code

错误:customCellTableViewCell.Type没有名为storyboard的成员

尝试3:

customCellTableViewCell: UITableViewCell {


var storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let view2: viewController2 = UIStoryboard(name: "Main", bundle:nil).instantiateViewControllerWithIdentifier("View2") as viewController2

switchActive fnc(){

self.window?.rootViewController?.navigationController?.pushViewController(view2, animated: true)

}

…
//rest of code

将代码放在switchActive fnc中,但不起作用。 用let代替var,但无济于事。 在这篇文章中尝试使用lazy属性的建议 How to get global pointer to view controller in swift

我无法弄清楚我做错了什么。我被困了一段时间。

1 个答案:

答案 0 :(得分:1)

故事板非常方便segueing。 1)在你的故事板中创建2个视图控制器(我认为它已经完成)

2)在2个视图控制器之间创建一个segue(从第一个ViewController到第二个控制器按住ctrl +单击,它会问你想要的segue类型,选择“show”)。

3)为该Segue提供一个标识符(点击第4个标签中的链接和右侧面板)

4)在第一个View Controller中,当激活开关时,

self.performSegueWithIdentifier("detail", sender:nil)

将标识符“detail”替换为您选择的标识符。