2016-06-17 2 views
0

Я пытаюсь добавить пользовательский элемент в мое меню просмотра таблиц, которое находится в ViewController. Я применил все необходимые методы, но мой элемент все еще не отображается. Если я использую элементы по умолчанию, например «копировать», все работает нормально. Я отказался от метода performAction, потому что я действительно не знаю, что добавить туда, но действие копии появилось без него. Не могли бы вы рассказать мне, что я ошибаюсь? Я приложил свой код, чтобы добавить свой пункт меню ниже:Добавление пользовательского элемента в Table View в Swift

override func viewDidLoad() { 
    super.viewDidLoad() 

    let item = UIMenuItem(title: "Block and Report", action: #selector(MessageViewController.blockAndReport(_:))) 

    let menu = UIMenuController.sharedMenuController() 

    var newItems = menu.menuItems 
     ?? [UIMenuItem]() 
    newItems.append(item) 
    menu.menuItems = newItems ...} 

func tableView(tableView: UITableView, shouldShowMenuForRowAtIndexPath indexPath: NSIndexPath) -> Bool { 
    return true 
} 

func tableView(tableView: UITableView, canPerformAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) -> Bool { 

    if action == #selector(MessageViewController.blockAndReport(_:)) { 
     return true 
    } 


    return false 
} 

func tableView(tableView: UITableView, performAction action: Selector, forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) { 

    //I don't really know what to add here 
} 

func blockAndReport(sender: AnyObject?) { 

    print("Hello") 

} 

ответ

0

Добавить в пользовательский элемент для вашего супер зрения, точки зрения к югу

использовать эту линию

self.tableview.addSubview(item) 
+0

изделие относится к типу UIMenuItem, для которого требуется тип просмотра типа addSubview. – Michal

0

Оказалось, что я должен был создать класс TableViewCell и подключить его к моей ячейке, и в этом классе мне пришлось реализовать метод blockAndReport. Теперь все работает нормально. Я пришел к выводу, что вы не можете использовать методы для своих элементов меню таблицы из того же класса.

Смежные вопросы