Есть аналоговое решение в Задание 23-го урока UIKit, но оно “полукастыльное”. Там нужно было реализавать метод в PageVC с куском кода:
let userDefaults = UserDefaults.standard
userDefaults.set(true, forKey: “presentationWasViewed”)
dismiss(animated: true, completion: nil)
А в ContentVC создать экземпляр PageVC и через кнопку обратится к этой функции, которая выполняет блок кода, после выполнения которого ViewController закрывается.
Так вот у меня 2 вопроса, почему решение ниже - не работает?
func setPresentationStatusToDone() {
let userDefaults = UserDefaults.standard
userDefaults.set(true, forKey: "presentationWasViewed")
dismiss(animated: true, completion: nil)
}
И затем вызвать этот метод из вашего экшина skipButton
через экземпляр класса pageViewController
:
@IBAction func skipButton(_ sender: UIButton) {
let pageVC = PageViewController()
pageVC.setPresentationStatusToDone()
}
и вопрос номер 2, у меня, если не менять forKey: “presentationWasViewed” на Viewed1,2… презентация открывается только 1 раз, это же странно разве нет? Я понимаю, что она по факту так и должна работать, но на момент разработки и тестирования это крайне неудобно же, как решить?