Action的多个参数/参数 - Swift

时间:2015-01-13 07:09:09

标签: swift parameters action selector

我发现了一个与我最相似的问题,但没有得到彻底的回答。如果有人能帮助我,那将是很棒的。我发现类似问题的地方是here

我清楚地了解func test() "test"test(object:AnyObject) "test:"将如何func popoverSelectedCode (code:AnyObject, desc:AnyObject) 。感谢this

那么2个参数怎么样?可以迅速不为'action:'做2个参数吗?

action: "popoverSelectedCode:,"

action: "popoverSelectedCode:,:"

action: "popoverSelectedCode: :"

action: "popoverSelectedCode: , :"

我尝试用以下几种方式测试它,但无济于事:

@IBAction func securityQuestButtonClicked (sender:AnyObject)
{
    cellButton = sender as? UIButton;

    var comboDescListArray = TableRoutine.loadCombobox("MobileQuestion")

    var codeObject : NSArray = comboDescListArray[0] as NSArray;
    var descObject : NSArray = comboDescListArray[1] as NSArray;

    var selectionTVC = CPSelectionTVC(style:UITableViewStyle.Plain, codeArray:codeObject, descArray:descObject, target:self, action: "popoverSelectedCode::", widthForViewInPopover:650)

    let navCtl = UINavigationController.init(rootViewController:selectionTVC)
    popoverController = UIPopoverController.init(contentViewController:navCtl)

    var contentHeight : CGFloat = CGFloat (UInt(selectionTVC.navigationTitleHeight) + UInt(selectionTVC.rowCount()) * UInt(selectionTVC.cellHeight))

    popoverController?.popoverContentSize = CGSizeMake(400.0, contentHeight)
    popoverController?.presentPopoverFromRect(sender.bounds, inView:sender as UIView, permittedArrowDirections:UIPopoverArrowDirection.Up, animated:true)
}

在斯威夫特只有一个星期的时间,所以请善待。

EDITED 这是代码的简短剪辑

{{1}}

然而,弹出窗口在选择时出现,它只是挂起。

7 个答案:

答案 0 :(得分:10)

关于Swift 2.2的说明。 您现在可以将选择器键入为

#selector(popoverSelectedCode(_:desc:)

答案 1 :(得分:2)

Swift 2.2 中,您可以执行以下操作。

myUISlider.addTarget(self, action:#selector(self.onSliderValChanged(_:withEvent:)), forControlEvents: .ValueChanged)

func onSliderValChanged(slider: UISlider, withEvent event: UIEvent?) {
    }

我希望它可以帮助那些人。

答案 2 :(得分:1)

使用两个参数,它变为action::。一个冒号一个冒号。

答案 3 :(得分:1)

如果该功能有两个参数,如下所示。

func clicked(sender:AnyObject,value:AnyObject)
{
}

然后

action = "clicked::"

答案 4 :(得分:1)

检查以下代码

func switchCard(card: Int, withCard card1: Int) {
    print(card)
}
let singleTap1 = UITapGestureRecognizer(target: self, action: "switchCard:withCard:")

答案 5 :(得分:0)

以下是您在案例中实现这一目标的方法:

action: "popoverSelectedCode:desc:"

答案 6 :(得分:0)

对于选择器方法中的多个参数传递:

let swipeRecognizer = UISwipeGestureRecognizer.init(target: self, action: #selector(ImageViewController.handleTap(_: sender :)))
myCell.imageViewPhoto .addGestureRecognizer(swipeRecognizer)