【发布时间】:2016-04-19 19:48:00
【问题描述】:
我正在尝试将搜索过滤器添加到我的UITableView,当用户单击它时,我在导航栏“搜索”上有一个按钮,它会打开一个 xib 控制器,用户可以在完成后填写字段UITableView 应该只显示用户输入的比较结果。我已将 xib 中的所有值传递给 tableviewcontroller,但如何比较它们并显示具体结果?
var pj = [PostedJobs]()
var pjJobs = PostedJobs()
class FeaturedTableViewController: UITableViewController {
@IBAction func btnSearch(sender: UIBarButtonItem) {
let detailViewController:SearchViewController = SearchViewController(nibName: "SearchViewController", bundle: nil)
self.presentPopupViewController(detailViewController, animationType: MJPopupViewAnimationFade)
// detailViewController.detailViewController1 = self
}
@IBOutlet var myTableView: UITableView!
@IBOutlet weak var menuButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
println(sf.price)
println(sf.deliveryTime)
println(sf.distance)
println(sf.featuredFilter)
println(sf.location)
println(sf.size)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "dismiss:", name:"dismiss", object: nil)
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
var urlString = "http://ziprelay.com/api/public/index.php/api/allJobs?token=\(user.token)"
let loadingNotification = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
loadingNotification.mode = MBProgressHUDMode.Indeterminate
loadingNotification.labelText = "Loading"
let alert = UIAlertView()
alert.title = "Alert"
alert.addButtonWithTitle("okay")
request(.POST, urlString)
.responseJSON { request, response, data, error in
println(user.token)
println(data)
println(response)
println(request)
MBProgressHUD.hideAllHUDsForView(self.view, animated: true)
if (error != nil) {
alert.message = String(stringInterpolationSegment: error?.localizedDescription)
alert.show()
} else {
pj = [PostedJobs]()
for var i = 0; i < JSON(data!)["jobs"].count; i++ {
println(JSON(data!)["jobs"][0]["job_info"]["job_id"])
pj.append(PostedJobs.jobsPosted(data!,index: i))
}
println(pj.count)
self.myTableView.reloadData()
self.do_table_refresh()
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return pj.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var string:String = String()
println(pj[indexPath.row].featured)
if (pj[indexPath.row].featured == "null") {
string = "reuseIdentifier"
} else if (pj[indexPath.row].featured == "yes") {
string = "reuseIdentifier1"
}
let cell = tableView.dequeueReusableCellWithIdentifier(string, forIndexPath: indexPath) as! FeaturedTableViewCell
cell.lblHeading.text = pj[indexPath.row].parcel_type
cell.lblFrom.text = pj[indexPath.row].from_zip
cell.lblTo.text = pj[indexPath.row].to_zip
// cell.lblSize.text = pj[indexPath.row].parcel_type
cell.lblClientName.text = pj[indexPath.row].name
var convertValue = String(stringInterpolationSegment: pj[indexPath.row].order_amount).floatValue
cell.lblCost.text = "\(convertValue)"
if(pj[indexPath.row].file_path != "")
{
ImageLoader.sharedLoader.imageForUrl("\(pj[indexPath.row].file_path)", completionHandler:{(image: UIImage?, url: String) in
cell.imgProduct.image = image
})
}
println(pj[indexPath.row].parcel_type)
println(pj[indexPath.row].from_zip)
println(pj[indexPath.row].to_zip)
println(pj[indexPath.row].parcel_type)
println(pj[indexPath.row].name)
println(String(stringInterpolationSegment: pj[indexPath.row].order_amount))
let favStar = UIImage(named: "favourites_star.png")
switch pj[indexPath.row].rating {
case 0:
println("aeman")
case 1:
cell.star1.image = favStar
case 2:
cell.star1.image = favStar
cell.star2.image = favStar
case 3:
cell.star1.image = favStar
cell.star2.image = favStar
cell.star3.image = favStar
case 4:
cell.star1.image = favStar
cell.star2.image = favStar
cell.star3.image = favStar
cell.star4.image = favStar
case 5:
cell.star1.image = favStar
cell.star2.image = favStar
cell.star3.image = favStar
cell.star4.image = favStar
cell.star5.image = favStar
default:
println("aeman")
}
return cell
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 75
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let indexPathh = tableView.indexPathForSelectedRow()
let currentCell = tableView.cellForRowAtIndexPath(indexPathh!) as UITableViewCell?;
pjJobs.pathToPostedJobs = indexPathh!.row
println(pjJobs.pathToPostedJobs)
performSegueWithIdentifier("map", sender: self)
}
func do_table_refresh()
{
dispatch_async(dispatch_get_main_queue(), {
self.myTableView.reloadData()
return
})
}
func dismiss(notification: NSNotification) {
self.dismissPopupViewControllerWithanimationType(MJPopupViewAnimationFade)
}
}
这是我的第一个应用程序,很抱歉代码混乱,有人可以帮忙吗?
【问题讨论】:
-
能否贴出将过滤器数据传回 UITableViewController 的代码?
标签: ios swift uitableview search filter