0
編碼相當新!使用過濾器來刪除自己的細胞
我試圖創建一個用戶數據庫與我可以在應用程序中篩選的Firebase。我想最簡單的方法是在另一個視圖控制器上切換過濾器,然後使用if語句讓單元格不符合過濾器標準來刪除它們自己。我希望總共有6個左右的過濾器,我認爲這種方法是可擴展的。
我無法弄清楚如何讓單元格自己刪除。
此頁面上只有一個過濾器。先前的視圖控制器具有一個按鈕,用於在1和0之間切換「maleFilter」。當男性篩選器爲1時,我希望沒有「Male」作爲其性別的用戶刪除自己。我該怎麼做呢?
謝謝!
///設置和抓住從火力地堡
import UIKit
import Alamofire
import Gloss
class UserTableViewController: UITableViewController {
var user: User?
var users: [User] = []
var myIndex = 0
var maleFilter: Int?
override func viewDidLoad() {
super.viewDidLoad()
Alamofire.request("https://database.firebaseio.com/users.json").responseJSON(completionHandler: {
response in
if let usersDictionary = response.result.value as? JSON {
for (key, value) in usersDictionary {
if let usersDictionary = value as? JSON {
var user = User(json: usersDictionary)
user?.userKey = key
self.users.append(user!)
self.tableView.reloadData()
}
}
}
})
}
數據庫///這是我掙扎
覆蓋FUNC viewWillAppear中(_動畫:BOOL){ super.viewWillAppear(真)
//maleFilter has its value toggled between 1 and 0 in a prior view controller
print(maleFilter)
//maleFilter == 1 represents the filter being toggled on
if maleFilter == 1 {
if user?.userGender == "Male" {
print ("male")
} else {
我試過這個代碼,我在網上找到,並不能得到它的工作
/*
users.remove(at: indexPath)
users.removeAtIndex(deletionIndexPath.row)
tableView.deleteRows(at: [indexPath.row], with: UITableViewRowAnimation)
*/
我還發現,這個網上,並一直無法得到它的工作
/*
let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (rowAction: UITableViewRowAction, indexPath: IndexPath) -> Void in
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
self.tableView.deleteRows(at: [indexPath], with: .automatic)
self.tableView.reloadData()
}
}
*/
} else {
print("Male filter not applied")
}
self.tableView.reloadData()
}
我覺得答案很可能是非常簡單的。像「self.users.remove(在:indexPath)(不工作」
任何幫助深表感謝
關於爲什麼你不使用Firebase Library的任何具體原因?無論如何,你不僅要從tableView中刪除單元格,而且要刪除與該過濾器相對應的數據源,或者你必須在'tableViewDatasourceDelegate'函數中使用'if'語句來檢查過濾條件並在'viewWill'中調用'_yourtableView.reloadData()' Appear'。 – Dravidian