Я добавил жест в классе A для перехода вверх. Если проведите пальцем вверх, функция, доступная в классе B, должна вызываться, вызывая функцию класса B в классе A, функция вызывает вызов, но изменения пользовательского интерфейса не выполняются в классе B.Swift3 не может реализовать функцию в другом классе
Заранее спасибо
class A: UIViewController {
var swipeUp = UISwipeGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGestureUp))
swipeUp.direction = UISwipeGestureRecognizerDirection.up
self.view.addGestureRecognizer(swipeUp)
}
func respondToSwipeGestureUp(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.up:
UserDefaults.standard.set("open", forKey: "status")
UserDefaults.standard.synchronize()
print("Swiped up")
B().moveUp()
default:
break
}
}
}
}
class B: UIViewController {
func moveUp() {
let status = UserDefaults.standard.object(forKey: "status") as! String
if status .isEqual("open")
{
let fullView1: CGFloat = 100
self.view.frame = CGRect(x: 0, y: fullView1, width: self.view.frame.width, height: self.view.frame.height)
}
else
{
}
}
}
Вы проверили флажок в 'B(). MoveUp()', B уже включен? – nynohu
Вы создаете новый экземпляр класса B ... Сохраняете экземпляр класса B –
Как вы переходите от A к B. Образец протокола и делегирования здесь имеет значение. –