Ниже приведен код для IBAction, который я хотел бы отключить в течение 5 секунд после его нажатия.Как отключить кнопку в течение нескольких секунд после ее прослушивания
@IBAction func postPressed(sender: AnyObject) {
//var disableMyButton = sender as? UIButton
//disableMyButton!.enabled = false
//NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector:"enableButton", userInfo: nil, repeats: false)
if(currLocation != nil){
let testObject = PFObject(className: "Hey")
testObject["text"] = self.postView.text
testObject["count"] = 0
testObject["replies"] = 0
testObject["location"] = PFGeoPoint(latitude: currLocation!.latitude , longitude: currLocation!.longitude)
testObject["comments"] = []
testObject["user"] = PFUser.currentUser()
testObject.saveInBackgroundWithBlock({ (success, error) -> Void in
if success {
self.dismissViewControllerAnimated(true , completion: nil)
if let completion = self.completion {
completion(self)
}
}
})
} else {
alert()
}
}
Закомментированные из кода моей попытки отключить кнопку в течение 5 секунд, но этот код авария, и я считаю, что разбился, потому что нет никакой ссылки на кнопку включения.
Обычно я хотел бы сделать что-то вроде
func enableButton() {
self.button.enabled = true
}
Но это не будет работать, так что это IBAction и Тереза нет ссылок на эту кнопку, кроме того. Может быть, есть способ сделать это, но я в недоумении.
Заранее благодарим за помощь.
Я предполагаю, что вы хотите сделать это, потому что вы ждете асинхронной операции завершения. Пять секунд - это плохо, потому что это может быть больше или меньше фактического времени, необходимого для завершения операции. Поскольку у вас уже есть блок обратного вызова, почему бы не просто отключить кнопку, прежде чем вы вызовете 'saveInBackgroundWithBlock()', то переустановите ее внутри блока завершения, если вы решите не отклонять диспетчер представлений (который уничтожает кнопку). –
@i_am_jorf Ну да, вроде. Я делаю это, потому что пользователь может нажать кнопку несколько раз, если соединение медленное и сделать несколько сообщений с одним и тем же контентом. –