Ios 将数据传递到表视图控制器
我有一个视图控制器,在这个视图控制器中有一个tableview。我正在从表视图控制器管理表。但我需要将数据从视图控制器发送到tableview控制器。我该怎么做 这是我的视图控制器:Ios 将数据传递到表视图控制器,ios,uitableview,swift,Ios,Uitableview,Swift,我有一个视图控制器,在这个视图控制器中有一个tableview。我正在从表视图控制器管理表。但我需要将数据从视图控制器发送到tableview控制器。我该怎么做 这是我的视图控制器: class SettingsViewController: UIViewController { ... } 这是我的表视图控制器: class SettingsTableViewController:UITableViewController { @IBOutlet var notification
class SettingsViewController: UIViewController {
...
}
这是我的表视图控制器:
class SettingsTableViewController:UITableViewController {
@IBOutlet var notificationsSwitch: UISwitch!
@IBAction func notificationsClicked(sender: UISwitch) {
if notificationsSwitch.on {
println("notifications on")
}else{
println("notifications off")
}
}
}
故事板:
将动作序列与prepareForSegue功能结合使用。本文介绍: 为打开SettingsTableViewController的推送序列添加标识符,并将以下功能添加到ViewController
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "unwindToTableView" {
let destinationController = segue.destinationViewController as! SettingsTableViewController
destinationController.notificationsSwitch.setOn(true, animated:true)
}
}
假设您希望将一些布尔值从settingsViewController传递到表中,您将得到如下结果:
var notifications: Bool = false
在Interface builder中,向推送序列添加标识符,如下所示:
编辑:最初对问题有点误解,因为数据不是从SettingsTableViewController传递到settingsViewController,而是从另一个方向传递。使用segues和prepareForSegue通常是将数据传递给另一个viewController的方法
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "unwindToTableView" {
let destinationController = segue.destinationViewController as! SettingsTableViewController
destinationController.notificationsSwitch.setOn(true, animated:true)
}
}
edit2:更改了在prepareForSegue函数中设置开关的方式。println?这不是Java吗?可能是我尝试过的@gutenmorgenuhu的重复,但我得到了以下错误致命错误:在展开可选值时意外发现nil如何解决?要回答这个问题,我们需要更多代码:错误发生在哪里,何时发生。etc@Okan你注意到我评论的链接了吗?我没有使用segues进行此操作。我不明白你的答案。分段是在视图控制器之间传递数据的方式。我已经为你的问题编辑了我的答案。我现在明白了。但我还有一个问题。我正在从服务器获取数据,所以我需要等待数据,然后当数据到来时,我需要在segue中使用。我该怎么做?@RuudKalis,“就是要走的路。”只要你使用segues。(我认为OP正在使用)。同意@Firo。。查看Okan的IB builder屏幕截图,有一个用于打开设置StableViewController的推送序列。