Swift IOS: сохранить экземпляр контроллера представления как черновик со всеми жестами

#ios #swift #save #views #gestures

#iOS #swift #Сохранить #Вид #жесты

Вопрос:

У меня есть пользовательский вид с UIPanGestureRecognizer, UIRotationGestureRecognizer, UIPinchGestureRecognizer

Пользователь может продолжать добавлять эти представления в контроллер представления, используя кнопку добавить.

Весь контроллер представления должен быть сохранен как черновик, чтобы он мог приходить и редактировать свои материалы, когда ему захочется

Я пытался

Метод 1: сохраните это в var и отправьте обратно в предыдущий Viewcontroller и получите его обратно. Но когда пользователь перезапускает приложение, оно исчезает.

Метод 2: я попытался сохранить в UserDefaults.

 for let TxtBoxVar as UITextField in self.view.subviews
{
    TxtCwtVar =1
    let TxtDataVar = NSKeyedArchiver.archivedDataWithRootObject(TxtBoxVar)
    DftSdbVal.setObject(TxtDataVar, forKey: "TxtBox(TxtCwtVar)_Key")
    
}
  

Но это игнорирует все жесты представления при сохранении. Это означает, что пользователь не может сжимать или перемещать представления после их возврата с помощью метода beow

 let TxtCwtVal = DftSdbVal.integerForKey("TxtCwtKey")
    for TxtCwtVar in 1...TxtCwtVal
    {
        if let VyuDtaVar = DftSdbVal.objectForKey("TxtBox(TxtCwtVar)_Key")
        {
            if let VyuVar = NSKeyedUnarchiver.unarchiveObjectWithData(VyuDtaVar as! NSData) as? UITextField
            {
                self.view.addSubview(VyuVar)
            }
        }
    }
  

Есть ли лучший способ сделать это или мы можем сохранить экземпляр альтернативно с помощью жестов?

Комментарии:

1. Не сохраняйте объект UITextField. Сохраняйте необходимую информацию о текстовом поле; это текст, положение и размер. Все остальное, например, распознаватели жестов, можно просто воссоздать по мере необходимости

2. Но я не знаю, сколько там текстовых полей и других полей. пользователь bcoz продолжает добавлять это. Таким образом, сохраняя так много информации с помощью be tuff

3. попробуйте Core Data @SujayUN

4. Не совсем. Вы можете легко сохранить массив объектов с помощью NSKeyedArchiver, и его можно восстановить с помощью NSKeyedUnarchiver, но Core Data — лучший выбор