У меня от этого болит голова. У меня есть IBAction для кнопки, которая выполняет несколько действий в ViewController, прежде чем закрыть ее. Ничего серьезного. Я вызываю FeedbackGenerator в самой первой части кода, но тактильный сигнал не срабатывает, пока все остальное не будет завершено и VC не закроется. Что я делаю не так? Я ожидаю, что тактильный сигнал сработает в тот момент, когда я нажму кнопку.
@IBAction func applyPressed(_: UIButton) {
let generator = UIImpactFeedbackGenerator(style: .light)
generator.prepare() //This was recommended but makes no difference.
generator.impactOccurred()
// apply the filter
var timeInt: Double!
switch time {
case "month":
timeInt = 2_629_746
case "week":
timeInt = 604_800
case "day":
timeInt = 86400
default: // forever
timeInt = 0
}
appDelegate.userDefault.set(keywordsTextField.text ?? "", forKey: "keywordFilter")
appDelegate.userDefault.set(audience, forKey: "audienceFilter")
appDelegate.userDefault.set(time, forKey: "timeFilter")
appDelegate.userDefault.set(timeInt, forKey: "timeFilterInt")
if keywordsTextField.text == "" &&
audience == "public" &&
time == "forever"
{
appDelegate.userDefault.set(false, forKey: "isFiltered")
} else {
appDelegate.userDefault.set(true, forKey: "isFiltered")
}
dismiss(animated: true)
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... d-vc-is-di