Frage Mehrere Parameter / Argumente für Action - Swift


Ich fand eine Frage ähnlich wie meine, aber sie wurde nicht gründlich beantwortet. Es wäre toll, wenn mir jemand helfen könnte. Der Ort, wo ich die ähnliche Frage fand, ist Hier.

Ich verstehe klar wie func test() wäre "test" und test(object:AnyObject) wäre "test:". Dank an Dies.

Wie wäre es also mit 2 Parametern? Kann schnell 2 Argumente für 'Aktion:' nicht tun?

func popoverSelectedCode (code:AnyObject, desc:AnyObject)

Ich habe es auf verschiedene Arten getestet, aber ohne Erfolg:

action: "popoverSelectedCode:,"

action: "popoverSelectedCode:,:"

action: "popoverSelectedCode: :"

action: "popoverSelectedCode: , :"

Ich bin nur etwa eine Woche alt in Swift, also sei bitte nett.

BEARBEITET Hier ist ein kurzer Clip des Codes

@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)
}

Das Popover erscheint jedoch beim Auswählen, es hängt einfach.


9
2018-01-13 07:09


Ursprung


Antworten:


Nur eine Anmerkung zu Swift 2.2. Sie können jetzt den Selektor als eingeben

#selector(popoverSelectedCode(_:desc:)

10
2018-03-24 07:58



Im Schnell 2.2 Sie können so etwas tun.

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

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

Ich hoffe, es hilft jemandem da draußen.


2
2017-09-26 07:16



Mit zwei Parametern wird es action::. Ein Doppelpunkt für ein Argument.


1
2018-01-13 07:14



Wenn die Funktion zwei Parameter wie folgt hat.

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

Dann

action = "clicked::"

1
2018-01-13 08:06



Überprüfen Sie dies unter dem Code

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

1
2017-09-29 09:51



Hier ist die Art, wie Sie es in Ihrem Fall erreichen können:

action: "popoverSelectedCode:desc:"

0
2017-09-29 09:48



Für mehrere Argumente übergeben in Selektor-Methode:

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

0
2017-08-05 06:21