Xcode Swift-细节视图控制器,取决于表格视图单元

Xcode Swift-细节视图控制器,取决于表格视图单元,xcode,swift,controller,tableview,tableviewcell,Xcode,Swift,Controller,Tableview,Tableviewcell,我有一个带有动态原型的基本表视图控制器 可以出现4个单元格,但也可以出现6个单元格 我想要的是: 根据单击哪个单元格切换到另一个“详细信息”-ViewController 我的第一个想法是: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if cell1clicked { // go to viewcontrollerA } elseif cell2cl

我有一个带有动态原型的基本表视图控制器

可以出现4个单元格,但也可以出现6个单元格

我想要的是:

根据单击哪个单元格切换到另一个“详细信息”-ViewController

我的第一个想法是:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if cell1clicked {
        // go to viewcontrollerA
    } elseif cell2clicked {
        // go to viewcontrollerB
    } elseif cell3clicked {
        // go to viewcontrollerC
    } else {
        // go to viewcontrollerD
    }

}
这在TableViewController中是否可行


问候和感谢

在故事板中使用
TableViewController
并使用静态单元格而不是动态单元格,就可以做到这一点

方法如下:

1-在静态表视图中定义4个单元格

2-在情节提要中拖动4视图控制器

3-将故事板中的第一个单元格与viewcontrollerA等连接

4-确保对类UITableViewController进行子类化,并删除tableview方法

更新:

如果要使用动态单元格,可以通过编程方式推送
ViewController

1-拖动4个ViewController并转到identity inspector,然后分别指定 一个是故事板ID

2-为ViewController创建4个类,并连接每个类 故事板及其类

2-将导航控制器添加到中的初始ViewController 故事板

我在这里为您制作了一个示例类:

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource{


    var array = ["First","Second","Third","Fourth"]


    @IBOutlet weak var tableviewmy: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 4
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell


        cell.textLabel?.text = array[indexPath.row]

        return cell;
    }
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        if indexPath.row == 0 {
            var controller1 : FirstViewController = storyboard?.instantiateViewControllerWithIdentifier("ViewControllerA") as! FirstViewController
            self.navigationController?.pushViewController(controller1, animated: true)

        }else if indexPath.row == 1{
            var controller2 : SecondViewController = storyboard?.instantiateViewControllerWithIdentifier("ViewControllerB") as! SecondViewController
            self.navigationController?.pushViewController(controller2, animated: true)
        }else if indexPath.row == 2 {
            // controller 3
        }else {    
            // controller 4
        }

    }

}
您可以下载一个示例项目:

我已经更新了我的答案,应该可以了:)嘿,谢谢你的回答,我在初始视图控制器中添加了一个表视图,并创建了一个样式为“basic”的自定义单元格。但是表视图仍然是空的?你可以参考这个?自定义单元格不能使用基本样式,你必须将其更改为自定义样式,我将上载一个示例给你看。请检查我的答案并下载示例,@Creativecrypter让我知道它是否有效,然后你可以接受它:)@Creativecrypter