2015-05-07 164 views
1

我有一个视图控制器,并且在这个视图控制器中有一个tableview。我正在管理表格视图控制器中的表格。但我需要从视图控制器发送数据到tableview控制器。我怎样才能做到这一点 ?将数据传递给表视图控制器

这是我的视图控制器:

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") 
     } 
    } 

} 

故事板:

enter image description here

+0

println?是不是Java? – Kex

+1

不,它是在迅速 – Okan

+0

可能重复[视图控制器之间传递数据](http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – dasdom

回答

1

使用行为塞格斯组合准备好了reForSegue功能。本文所介绍的:

Storyboards Tutorial in Swift: Part 2

添加您的推赛格瑞打开的SettingsTableViewController的标识符,并添加以下功能视图控制器。

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 

在界面生成器,一个标识符添加到推SEGUE是这样的: Push segue identifier in IB

编辑:最初稍微误解了问题,因为数据不是从SettingsTableViewController传递到settingsViewController,而是以其他方式传递。使用segues和prepareForSegue通常是将数据传递给另一个viewController的方式。

edit2:改变了在prepareForSegue函数中设置开关的方式。

+0

我不使用segues进行此操作。我无法理解你的答案。 – Okan

+0

segues是在视图控制器之间传递数据的方式。我已经编辑了你的问题的答案。 –

+0

我现在明白你的意思了。但我还有一个问题。我从服务器获取数据,所以我需要等待数据,然后在需要时使用segue。我怎样才能做到这一点 ? – Okan

相关问题