相当新的编码!
我尝试使用firebase创建一个用户数据库,我可以在应用中进行过滤。我认为最简单的方法是在另一个视图控制器上切换过滤器,然后使用if语句使单元格不符合过滤器标准删除自己。我希望总共有大约6个过滤器,我认为这种方法是可扩展的。
我无法弄清楚如何让细胞自行删除。
此页面上只有一个过滤器。先前的视图控制器有一个按钮,用于切换" maleFilter"在1到0之间。当男性过滤器为1时,我希望用户不会有#34;男性"作为他们的性别删除自己。我怎么可能这样做?
谢谢!
///从Firebase设置并抓取数据库
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(_ animated: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(at:indexPath)(不起作用"
非常感谢任何帮助
答案 0 :(得分:0)
filterArray = UsersArray.filter({ m in
m.UserGender.contains("Male")
})
尝试这个,结果你只使用Male获得过滤器数组。 希望它会对你有所帮助。