我有2个视图控制器。一个是UITableView,另一个是VC,它允许我在表格中添加一个单元格。
PeopleListViewController:
var people = [Person]()
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of rows in the section.
return people.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("personCell", forIndexPath: indexPath) as UITableViewCell
// Configure the cell...
cell.textLabel.text = (people[indexPath.row]).dateTime //Each row will say the date of the person.
return cell
}
@IBAction func cancel(segue:UIStoryboardSegue){
}
@IBAction func done(segue:UIStoryboardSegue){
var addPersonVC = segue.sourceViewController as AddPersonViewController
var newPerson = Person()
newPerson.dateTime = addPersonVC.date
people.append(newPerson)
}
AddPersonViewController:
@IBOutlet weak var dateAndTime: UITextField!
let date = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .MediumStyle, timeStyle: .ShortStyle)
override func viewDidLoad() {
super.viewDidLoad()
dateAndTime.text = "\(date)"
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "doneSegue" {
}
}
现在它的作用是提出一个tableview。当我单击添加按钮时,它会将我带到addpersonvc并自动预加载日期。当我点击完成后,它会返回到peoplelistvc并填写表格单元格中的日期。
我怎样才能做到这一点,当我点击一个单元格时,它会让我回到addpersonvc并进行编辑? 谢谢。
答案 0 :(得分:1)
一种方法是您可以创建自己的自定义单元格。使用.xib文件创建自定义单元类。在viewController中注册NIB。然后,您可以使用自定义单元格,可在.xib文件中编辑。
如果在视图控制器中注册自定义单元格,则在cellForRowAtIndexPath tableview函数中,可以将单元格声明为
var nib : UINib = UINib(nibName: "CustomCell", bundle: nil)
table.registerNib(nib, forCellReuseIdentifier: "myCell")
var cell: customCell = tableView.dequeReusableCellWithIdentifier("myCell" , forIndexPath: indexPath) as customCell
我更好地阅读了你的问题。这是编辑单元格视觉外观的方法。我的坏。
您需要实现didSelectRowAtIndexPath方法。
答案 1 :(得分:1)
Nates走在正确的轨道上。有两种方法可以做到这一点。
为此,以编程方式实现didSelectRowAtIndexPath方法,然后实例化一个新控制器。然后,您可以使用indexPath变量从表正在使用的数据数组中获取索引。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var vc : UIViewController! = self.storyboard!.instantiateViewControllerWithIdentifier("practice") as UIViewController
}
如果您想使用故事板执行此操作,请创建一个viewController和一个tableViewController。然后从一个表视图单元格右键拖动到viewController对象。将出现一个弹出菜单,并选择“显示”,这将创建一个segue,当您选择其中一个单元格时,将允许您转到该视图。然后,您必须编写代码以在UIViewController中填充它