Я делаю форму, в которой есть en bunch из разных UITableViewCells с различными функциями, поэтому вместо того, чтобы загромождать мой UITableView класс с ode для каждого действия, я хотел реализовать каждую функцию на ячейках подкласса.Вызов UIActionSheet из подкласса UITableViewCell
Итак, у меня есть ячейка прямо сейчас, когда появляется сообщение UIActionSheet, но когда я ничего не слышу, даже если делегат установлен.
Является ли моя идея неправильной и будет ли другой способ лучше? Вот простой код.
import UIKit
class STypeCell: UITableViewCell, UIActionSheetDelegate {
func chooseType() {
var sheet: UIActionSheet = UIActionSheet()
let title: String = "Please choose a course"
sheet.delegate = self
sheet.title = title
sheet.addButtonWithTitle("Cancel")
sheet.addButtonWithTitle("A course")
sheet.addButtonWithTitle("B course")
sheet.addButtonWithTitle("C course")
sheet.cancelButtonIndex = 0
sheet.showInView(self.superview)
}
func actionSheet(sheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {
println("this never gets called")
}
func actionSheet(actionSheet: UIActionSheet, willDismissWithButtonIndex buttonIndex: Int) {
println("this never gets called")
}
func actionSheet(actionSheet: UIActionSheet, didDismissWithButtonIndex buttonIndex: Int) {
println("this never gets called")
}
попробуйте показать вид действия в keywindow –
Вам нужно будет добавить кнопку или другое действие события касания, чтобы создать свой лист действий. Быстрый вопрос, правда, вы повторно используете ячейки? Если это так, я предлагаю создать функцию для обработки этого запроса, который был порожден из didSelectRowAtIndexPath на контроллере представления, который имеет таблицу. –
my tableview работает отлично, все, что я показываю, является подклассом одной из моих ячеек. В моем didSelectRowAtIndexPath я проверяю класс STypeCell, и если это так, я вызываю функцию selectType() в моей ячейке, которая показывает листок действий, но не запускает его делегат @thefredelement – magnuskahr