Сегментированный элемент управления - почему оба действия смахивания исчезают при проверке .selectedSegmentIndex - PullRequest
0 голосов
/ 15 октября 2018

В моем приложении у меня есть свайп для удаления в моем сегментированном элементе управления, и он работает, показывая два разных просмотра таблиц, но я только хочу иметь свайп для удаления и отчет для отображения в моем случае 0, а не в моем случае 1 (потому что случай 1 содержит данные о других пользователях, которые пользователь может удалить или сообщить текущему пользователю).

Я пытался использовать:

if mySegmentedControl.selectedSegmentIndex == 0 {
        return UISwipeActionsConfiguration(actions: [delete, report])
    }
    else {
        return nil
    }

Но при этом удалялась только кнопка отчета, а не кнопкакнопка удаления?Почему это?

Это мой список для удаления и сообщить код:

@available(iOS 11.0, *)
 func tableView(_ tableView: UITableView, 
  trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> 
   UISwipeActionsConfiguration? {

let delete = UIContextualAction(style: .destructive, title: "Delete") { (action, view, nil) in
    Database.database().reference().child("messages").child(self.currentUserID!).child(self.message[indexPath.row].messageID).setValue([])                
}

let report = UIContextualAction(style: .destructive, title: "Report") { (action, view, nil) in

    let areUSureAlert = UIAlertController(title: "Are you sure you want to report?", message: "This will block this user from message you.", preferredStyle: UIAlertControllerStyle.alert)  
    areUSureAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action: UIAlertAction!) in

        Database.database().reference().child("messages").child(self.currentUserID!).child(self.message[indexPath.row].messageID).setValue([])

        let blockedPost = ["timestamp" : [".sv" : "timestamp"]]
        Database.database().reference().child("blocked").child(self.currentUserID!).child(self.message[indexPath.row].fromID).setValue(blockedPost)
    }))

    areUSureAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (action: UIAlertAction!) in
        //dismiss(animated: true, completion: nil)
    }))

    self.present(areUSureAlert, animated: true, completion: nil)
 }
report.backgroundColor = #colorLiteral(red: 0.9529411793, green: 0.8918681279, blue: 0, alpha: 1)

if mySegmentedControl.selectedSegmentIndex == 0 {
        return UISwipeActionsConfiguration(actions: [delete, report])
    }
    else {
        return nil
    }

}  

1 Ответ

0 голосов
/ 15 октября 2018
...