夫特 - 详细视图控制器根据表视图细胞

问题描述:

我有动态原型一个基本表视图控制器,夫特 - 详细视图控制器根据表视图细胞

那里可以出现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 
    } 

} 

是这甚至可能与tableviewcontrollers?

问候和感谢!

+0

我已经更新了我的答案,它应该工作:) – AaoIi

它可以通过在故事板中使用TableViewController来实现,并使用静态单元而不是动态。

这里是这样的:

1-定义4个细胞在静态的tableView。

2-在故事板中拖动4视图控制器。

3-在Storyboard中将第一个单元与viewcontrollerA等连接起来。

4-确保你的类继承UITableViewController并删除tableview方法。

更新:

如果要使用动态细胞及其可能推ViewController编程:

1- 4个拖动和ViewControllers去身份检查,并给每一个 一个故事板ID。

2-为您的ViewControllers创建4个类,并将每个 故事板连接到它的类。 - 在 故事板中将导航控制器添加到您的初始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 
     } 

    } 

} 

你可以下载一个示例项目: https://yadi.sk/d/F5Qb85MLiMPqk

+0

嘿感谢您的FPR回答,我在我的初始视图控制器中添加了一个表视图,并创建了一个样式为“basic”的自定义单元格。但表格视图仍然是空的?你可以参考这个? –

+0

自定义单元格不适用于基本样式,您必须将其更改为自定义样式,否则上传样本以向您展示。请检查我的答案并下载样本,@Creativecrypter – AaoIi

+0

让我知道它是否有效,然后您可以接受它:) @Creativecrypter – AaoIi