У меня есть два контроллера вида: ManualViewController, AutomaticViewController В ManualViewController есть табличное представление с каждой ячейкой, имеющей метку и переключатель.Как получить доступ к ячейкам табличного вида вида из другого представления в Swift?
Как получить доступ к этим переключателям с помощью AutomaticViewController?
Heres мой код ManualViewController:
import UIKit
class ManualViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var objects: NSMutableArray! = NSMutableArray()
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.navigationBarHidden = false
self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
self.tabBarController?.tabBar.barTintColor = UIColor.blackColor()
// Do any additional setup after loading the view.
self.objects.addObject("iPhone")
self.objects.addObject("Apple Watch")
self.objects.addObject("Mac")
self.tableView.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.objects.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TableViewCell
cell.deviceName.text = self.objects.objectAtIndex(indexPath.row) as? String
cell.deviceState.tag = indexPath.row;
return cell
}
@IBAction func whatToDo(sender: UISwitch) {
var c = sender.tag
if c == 2
{
if sender.on
{
println("on")
}
else
{
println("off")
}
}
}
}
`
Большое вам спасибо! Не могли бы вы изменить мой полный код и опубликовать его? Я никогда не работал со словарями, и я хотел бы знать, как это сделать. Моя фактическая ситуация: у меня есть кнопка в AutomaticViewController. Когда эта кнопка нажата, она должна менять состояния переключателей в ManualViewController. –
На этот вопрос был дан ответ. Если есть часть решения, о котором вы не уверены, я могу уточнить. В противном случае, я не могу написать код для вас. – Tim
Мне удалось добавить словарь my self следующим образом: cell.deviceName.text = object ["label"] as? Строка cell.deviceState.setOn (объект ["switchState"] as! Bool, анимированный: false) Это сработало. Теперь, как я могу реализовать функцию WhatToDo, как узнать, какой переключатель нажат? –