Swift - 在没有参数的viewDidLoad中调用@IBAction方法

hah*_*aha 14 parameters ibaction swift

@IBAction func getNewPhotoAction(sender: AnyObject) {
    println("getNewPhotoAction")
}

override func viewDidLoad() {
    super.viewDidLoad()
    self.getNewPhotoAction(sender: AnyObject) // Error
}
Run Code Online (Sandbox Code Playgroud)

我只是想调用getNewPhotoActionIBAction方法viewDidLoad.

在这一行输入哪个参数 - > self.getNewPhotoAction(?????)

我没有任何参数.我只需要打电话.

我用Objective-C风格:

[self getNewPhotoAction:nil]
Run Code Online (Sandbox Code Playgroud)

但我不知道斯威夫特的风格.

yli*_*x81 39

该参数sender指示谁正在调用操作方法.来电时viewDidLoad,只需传递self给它.

override func viewDidLoad() {
    super.viewDidLoad()
    getNewPhotoAction(self)
}
Run Code Online (Sandbox Code Playgroud)

顺便说,如果sender该参数getNewPhotoAction不使用的方法,可以省略参数名称.

@IBAction func getNewPhotoAction(AnyObject) {
    println("getNewPhotoAction")
}
Run Code Online (Sandbox Code Playgroud)


Am*_*ino 5

您始终可以创建一个单独的func,您可以在viewDidLoad或IBAction中调用它

override func viewDidLoad() {
   super.viewDidLoad()
   self.getNewPhoto()
}

func getNewPhoto(){
    //do whatever you want here. 
    println("getnewphotoaction")
    println("whatever you want")
}
@IBAction func getNewPhotoAction(sender: AnyObject) {
    self.getNewPhoto()
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 0

由于您没有任何发件人,请移交nil

self.getNewPhotoAction(nil)
Run Code Online (Sandbox Code Playgroud)