Проведите, чтобы редактировать детали с помощью Segue
Я новичок в разработке IOS и быстро, поэтому я немного запутался. Опираясь на этот вопрос
Проведите, чтобы редактировать детали Swift и Parse
У меня есть ячейка таблицы, которую я провожу пальцем, и когда я нажимаю кнопку "Изменить", я хочу, чтобы она перешла на другую страницу для редактирования сведений. Когда у меня нет перехода, он запрашивает один как ошибку. Когда я ставлю один (переходя из ячейки прототипа> страница редактирования), он работает, за исключением того, что теперь он идет туда, когда я нажимаю на ячейку в дополнение к смахиванию.
Я просто хочу, чтобы он редактировал только при смахивании. Как можно это сделать?
Должен ли я подавить действие по умолчанию перехода в
prepareForSegue
чтобыEditDetails
Segue срабатывает только когда я говорю это (как показано ниже)?var editAction = UITableViewRowAction(style: .Default, title: "Edit" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in dispatch_async(dispatch_get_main_queue()) { self.performSegueWithIdentifier("EditDetails", sender: tableView.cellForRowAtIndexPath(indexPath)) } }) editAction.backgroundColor = UIColor.greenColor()
Должен ли я создавать переход в коде, а не через пользовательский интерфейс, чтобы он не добавил никаких дополнительных действий, которые мне не нужны?
1 ответ
ViewController A: где у вас есть ячейка ViewController B: viewController, что вы хотели бы представить.
На раскадровке нажмите ViewController A, нажмите и удерживайте клавишу CTRL и перетащите синюю линию на ViewController B. Выберите "показать" segue.
Нажмите на Segue, и давайте назовем его "EditDetails"
Теперь вы настроили переход. После этого вы должны вызвать: self.performSegueWithIdentifier("EditDetails", sender: self)
вместо
self.performSegueWithIdentifier ("EditDetails", отправитель: tableView.cellForRowAtIndexPath(indexPath))
Причина: именно viewController будет выполнять переход, а не tableViewCell.