2015-09-25 1 views

ответ

2

В быстром файле вашей пользовательской ячейки, написать протокол сообразуйтесь вашим viewContoller,

// your custom cell's swift file 

protocol CustomCellDelegate { 
    func showActionSheet() 
} 

class CustomTableViewCell : UITableViewCell { 
    var delegate: CustomCellDelegate? 

    // This is the method you need to call when button is tapped. 
    @IBAction func buttonTapped() { 

     // When the button is pressed, buttonTapped method will send message to cell's delegate to call showActionSheet method. 
     if let delegate = self.delegate { 
      delegate.showActionSheet() 
     } 
    } 
} 

// Your tableViewController 
// it should conform the protocol CustomCellDelegate 

class MyTableViewController : UITableViewController, CustomCellDelegate { 

    // other code 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCellWithIdentifier("CustomCellReuseIdentifier", forIndexPath: indexPath) 

     // configure cell 

     cell.delegate = self   

     return cell 
    } 

    // implement delegate method 
    func showActionSheet() { 

     // show action sheet 

    } 
} 

Убедитесь, что контроллер представления соответствует протоколу CustomCellDelegate и реализует метод showActionSheet().

Назначить свой viewContoller как делегат пользовательской ячейки при создании ваших ячеек в методе dataSource cellForRowAtIndexPath.

Вы можете представить свой новый контроллер вида из метода showActionSheet в viewController.

+0

Есть ли учебник, объясняющий, о чем вы говорите? Я знаю протоколы, но я не знаю, как это использовать. –

+0

Возможно, есть несколько уроков, но вместо этого я отредактировал ответ. Я надеюсь, что это будет полезно – buhanserdar

0

Это, как вы могли бы сделать это:

  1. Создать протокол о ваших клиентах UITableViewCell сказать MyTableViewCellDelegate.
  2. Добавьте способ cellButtonTapped в свой протокол.
  3. Подключите контроллер вида (который использует эти ячейки) к MyTableViewCellDelegate, т. Е. В файле заголовка добавьте <MyTableViewCellDelegate>.
  4. В вашем представлении метод cellForRowAtIndexPath: контроллера, при инициализации ячейки, присваивает себя как делегат.
  5. В своем классе сокета класса таблицы, когда кнопка нажата, передайте управление его делегату, который является вашим контроллером представления.
  6. Внесите метод cellButtonTapped в ваш контроллер и настоящий лист действий, как вам нравится.