web-dev-qa-db-ja.com

アクションの複数のパラメータ/引数-Swift

私の質問に最も似ている質問を見つけましたが、完全には答えられませんでした。誰かが私を助けてくれるといいですね。同様の質問を見つけた場所は ここ です。

func test()が_"test"_になり、test(object:AnyObject)が_"test:"_になることを明確に理解しています。おかげで this

では、2つのパラメーターはどうですか? Swift 'action:'に対して2つの引数を実行できませんか?

_func popoverSelectedCode (code:AnyObject, desc:AnyObject)
_

以下のいくつかの異なる方法でテストしてみましたが、役に立ちませんでした。

_action: "popoverSelectedCode:,"

action: "popoverSelectedCode:,:"

action: "popoverSelectedCode: :"

action: "popoverSelectedCode: , :"
_

Swift)は生後約1週間なので、親切にしてください。

[〜#〜]編集済み[〜#〜]これはコードの短いクリップです

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

ポップオーバーは表示されますが、選択するとハングします。

9
Rach Ng

Swift 2.2。セレクターを次のように入力できるようになりました。

#selector(popoverSelectedCode(_:desc:)
10
Erik Johansson

Swift 2.2では、次のようなことができます。

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

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

私はそれがそこに誰かを助けることを願っています。

2
Hanny

関数に以下のような2つのパラメータがある場合。

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

次に

action = "clicked::"
1
rakeshbs

2つのパラメーターを使用すると、action::になります。 1つの引数に対して1つのコロン。

1
mustafa

以下のコードを確認してください

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

あなたのケースでそれを達成する方法は次のとおりです。

action: "popoverSelectedCode:desc:"
0
Dharmesh

セレクターメソッドで複数の引数を渡す場合:

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