@Gapnik
Студент - МГТУ им. Н. Э. Баумана

Как в swift реализовать Делегирование?

Всем привет. Я пишу приложение под Iphone, у меня возникла трудность.
пусть есть ViewController(с кнопкой перехода и лэйблом) и TableViewController допустим заполнили таблицу и там, например в ячейки 3 ,написано "человек". нажмем на неё переходим в ViewController. Как сделать. Чтобы при этом во вью текст лэйбла изменился на человек. Напишите пожалуйста поподробнее, как реализовать это через Делегирование.
  • Вопрос задан
  • 3231 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Flie
Ну вот так вот.
import UIKit

class SomeViewController: UIViewController {
    @IBOutlet var myLable: UILabel!
    
    var someValue: String = "ноль"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        myLable.text = someValue
    }
}


class NextTableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {
    let array = ["один", "два", "три"]
    let sequeIdentifiers = "go"
    
    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let selected = indexPath.row
        
        self.performSegueWithIdentifier(sequeIdentifiers, sender: selected)
    }
    
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let destControl = segue.destinationViewController as SomeViewController
        if let indexFromSender: Int = sender?.integerValue{
            destControl.someValue = array[indexFromSender]
        }
        else{println("Not Integer")}
        
    }
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return array.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cellIdentifier = "Cell"
        var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell
        if cell == nil{
          cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellIdentifier)
        }
        
        cell!.textLabel?.text = array[indexPath.row]
        return cell!
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы