Форум программистов, компьютерный форум CyberForum.ru

Swift

Войти
Регистрация
Восстановить пароль
 
korolevsky
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 44
#1

Как сохранить введенные данные пользователя в поле TextField нажатием клавиши «done» на клавиатуре? - Swift

22.10.2015, 21:09. Просмотров 511. Ответов 3
Метки нет (Все метки)

Всем привет! Помогите решить проблему. Есть поле UITextField, пользователь вводит в него текст и нажимает на клавиатуре кнопку "Done", после этого в этом UITextField отображается введенный им текст, НО после перезапуска приложения все введенные данные конечно обнуляются. Теперь вопрос: как научить приложение запоминать эти данные и подставлять их при новой загрузке.
Ковырял NSUserDefaults но ничего дельного не получилось...

Добавлено через 1 час 45 минут
придумал следующее решение:

Objective-C
1
2
3
4
5
6
7
8
@IBOutlet weak var Name: UITextField!
    @IBAction func HideKeyboardName(sender: UITextField) {
        
        let enterName = Name
        NSUserDefaults.standardUserDefaults().setObject(enterName, forKey: "saveName")
        NSUserDefaults.standardUserDefaults().synchronize()
        
    }
но не понимаю как подхватить сохраненные данные
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2015, 21:09     Как сохранить введенные данные пользователя в поле TextField нажатием клавиши «done» на клавиатуре?
Посмотрите здесь:

Как сделать сдвиг контента в UIScrollView при вводе данных в TextField? Swift
Тектовое поле в SpriteKit Swift
Swift Textfield деление
Как сохранить Array в NSUserDefaults? Swift
Swift Регистрация пользователя по номеру телефона
Swift Скрыть символы в textField. Запретить ввод менее 6 символов!
Посчитать определенные символы в TextField Swift

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jabbson
Модератор
Эксперт по компьютерным сетям
2985 / 2086 / 394
Регистрация: 03.11.2009
Сообщений: 6,600
Записей в блоге: 3
22.10.2015, 21:36     Как сохранить введенные данные пользователя в поле TextField нажатием клавиши «done» на клавиатуре? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import UIKit
 
class ViewController: UIViewController {
 
    @IBOutlet weak var TextView: UITextView!
    
    let def = NSUserDefaults.standardUserDefaults()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        if let text = def.stringForKey("textView") {
            TextView.text = text
        }
    }
 
    @IBAction func DoneButton(sender: UIButton) {
        def.setObject(TextView.text, forKey: "textView")
    }
}
korolevsky
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 44
22.10.2015, 22:37  [ТС]     Как сохранить введенные данные пользователя в поле TextField нажатием клавиши «done» на клавиатуре? #3
Если Вас не затруднит - подскажите пожалуйста, как реализовать то же самое но для ImageView (в нем отображается фото из альбома).

Добавлено через 18 минут
Цитата Сообщение от Jabbson Посмотреть сообщение
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import UIKit
 
class ViewController: UIViewController {
 
    @IBOutlet weak var TextView: UITextView!
    
    let def = NSUserDefaults.standardUserDefaults()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        if let text = def.stringForKey("textView") {
            TextView.text = text
        }
    }
 
    @IBAction func DoneButton(sender: UIButton) {
        def.setObject(TextView.text, forKey: "textView")
    }
}
И еще появилась проблема. присутствует второе текстовое поле, которое я тоже исправил на приведенный Вами код, но первое поле работает, а второе все равно не сохраняет...

Добавлено через 15 минут
Прошу прощения - был не внимателен, теперь все работает, работают все текстовые поля. Вопрос остался открыт с ImageView контроллером...
Jabbson
Модератор
Эксперт по компьютерным сетям
2985 / 2086 / 394
Регистрация: 03.11.2009
Сообщений: 6,600
Записей в блоге: 3
23.10.2015, 00:35     Как сохранить введенные данные пользователя в поле TextField нажатием клавиши «done» на клавиатуре? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от korolevsky Посмотреть сообщение
Вопрос остался открыт с ImageView контроллером
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//
//  ViewController.swift
//  cyber_forum
//
//  Created by Arseniy Ivanov on 10/22/15.
//  Copyright © 2015 JSON LLC. All rights reserved.
//
 
import UIKit
 
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
    @IBOutlet var imageView: UIImageView!
    
    let imagePicker = UIImagePickerController()
    
    // путь к Documents
    func getDocumentsDirectory() -> NSString {
        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let documentsDirectory = paths[0]
        return documentsDirectory
    }
    
    // по нажатию кнопки - выбираем картинку из галереи
    @IBAction func loadImageButtonTapped(sender: UIButton) {
        imagePicker.allowsEditing = false
        imagePicker.sourceType = .PhotoLibrary
        
        presentViewController(imagePicker, animated: true, completion: nil)
    }
    
    // после загрузки проверяем есть ли у нас картика в Documents, если есть - ставим в imageView
        override func viewDidLoad() {
        super.viewDidLoad()
        
        imagePicker.delegate = self
        let filename = getDocumentsDirectory().stringByAppendingPathComponent("copy.png")
        if let image = UIImage(contentsOfFile: filename) {
            imageView.contentMode = UIViewContentMode.ScaleAspectFit
            imageView.image = image
        }  
    }
    
    // выбиралка картинок, выбранная - в imageView
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: AnyObject]) {
        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
            imageView.contentMode = .ScaleAspectFit
            imageView.image = pickedImage
            
            if let data = UIImageJPEGRepresentation(pickedImage, 0.8) {
                let filename = getDocumentsDirectory().stringByAppendingPathComponent("copy.png")
                data.writeToFile(filename, atomically: true)
            }
        }
        
        dismissViewControllerAnimated(true, completion: nil)
    }
    
    func imagePickerControllerDidCancel(picker: UIImagePickerController) {
        dismissViewControllerAnimated(true, completion: nil)
    }
}
Yandex
Объявления
23.10.2015, 00:35     Как сохранить введенные данные пользователя в поле TextField нажатием клавиши «done» на клавиатуре?
Ответ Создать тему
Опции темы

Текущее время: 14:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru