【发布时间】:2015-06-03 04:28:53
【问题描述】:
我想在我的 popovercontroller 中传递数组并对表视图控制器进行排序,对其进行排序并将其返回给主控制器。
我的 popovercontroller 代码
protocol MyProtocol
{
func refreshPageController(sortedProperties:[Property])
}
class SortingPopoverController: UIViewController
{
@IBOutlet var propertyNameView: UIView!
@IBOutlet var addressNameView: UIView!
@IBOutlet var imgSortingPropertyName: UIImageView!
@IBOutlet var propNameSrtImage: UIImageView!
@IBOutlet var addressSrtImage: UIImageView!
@IBOutlet var imgTickPropertyName: UIImageView!
@IBOutlet var imgTickAddress: UIImageView!
var properties:[Property] = [Property]()
var utility = Utility()
var srtProperties : [Property] = []
var mDelegate: MyProtocol?
override func viewDidLoad()
{
super.viewDidLoad()
println(properties.count)
let propertyNameSorting = UITapGestureRecognizer(target: self, action: "propertyNameSorting:")
self.propertyNameView.addGestureRecognizer(propertyNameSorting)
let addressSorting = UITapGestureRecognizer(target: self, action: "addressSorting:")
self.addressNameView.addGestureRecognizer(addressSorting)
imgTickPropertyName.hidden = true
imgTickAddress.hidden = true
}
func removeViewColorSelection(uiViewRef: UIView,tickImgShow: UIImageView)
{
uiViewRef.backgroundColor = utility.uicolorFromHex(0xF0F0F0)
uiViewRef.alpha = 0.97
tickImgShow.hidden = true
}
func addSelectedColorView(uiViewRef: UIView,tickImgShow: UIImageView)
{
uiViewRef.backgroundColor = UIColor.whiteColor()
uiViewRef.alpha = 0.97
tickImgShow.hidden = false
}
func propertyNameSorting(sender:UITapGestureRecognizer)
{
println("propertyNameSorting")
if propertyNameSrt == false
{
ascSorting == false
addSelectedColorView(propertyNameView,tickImgShow: imgTickPropertyName)
propertyNameSrt = true
removeViewColorSelection(addressNameView,tickImgShow: imgTickAddress)
addressSrt = false
if ascSorting == false
{
ascSorting = true
propNameSrtImage.image = UIImage(named: "sorting-ascending-22pt")
properties.sort(sorterForbuildingAsc)
}
else
{
ascSorting = false
propNameSrtImage.image = UIImage(named: "sorting-desending-22pt")
properties.sort(sorterForbuildingDesc)
}
}
else
{
if ascSorting == false
{
ascSorting = true
propNameSrtImage.image = UIImage(named: "sorting-ascending-22pt")
properties.sort(sorterForbuildingAsc)
}
else
{
ascSorting = false
propNameSrtImage.image = UIImage(named: "sorting-desending-22pt")
properties.sort(sorterForbuildingDesc)
}
}
mDelegate?.refreshPageController(properties)
}
func addressSorting(sender:UITapGestureRecognizer)
{
println("addressSorting")
if addressSrt == false
{
ascSorting = false
addSelectedColorView(addressNameView,tickImgShow: imgTickAddress)
propertyNameSrt = false
removeViewColorSelection(propertyNameView,tickImgShow: imgTickPropertyName)
addressSrt = true
if ascSorting == false
{
ascSorting = true
addressSrtImage.image = UIImage(named: "sorting-ascending-22pt")
}
else
{
ascSorting = false
addressSrtImage.image = UIImage(named: "sorting-desending-22pt")
}
}
else
{
if ascSorting == false
{
ascSorting = true
addressSrtImage.image = UIImage(named: "sorting-ascending-22pt")
}
else
{
ascSorting = false
addressSrtImage.image = UIImage(named: "sorting-desending-22pt")
}
}
}
从主控制器打开控制器的代码
var sortingPopView = SortingPopoverController(nibName: "PopView",bundle: nil )
sortingPopView.properties = properties
var sortingPopoverController = UIPopoverController(contentViewController: sortingPopView)
sortingPopoverController.popoverContentSize = CGSize(width: 250, height: 100)
sortingPopoverController.presentPopoverFromBarButtonItem(sortingBtn, permittedArrowDirections: UIPopoverArrowDirection.Up
, animated: true)
问题是我无法调用主视图控制器方法对数组进行排序。
【问题讨论】:
标签: swift uipopovercontroller popover