Xcode Swift-细节视图控制器,取决于表格视图单元
我有一个带有动态原型的基本表视图控制器 可以出现4个单元格,但也可以出现6个单元格 我想要的是: 根据单击哪个单元格切换到另一个“详细信息”-ViewController 我的第一个想法是: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
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