Когда я go на viewcontroller и обратно, текст не отображается - PullRequest
0 голосов
/ 28 апреля 2020

В моем приложении у меня есть тип контроллера имени вашего имени, контроллер представления имени дисплея и контроллер представления имени отца. Каждый раз, когда я go возвращаюсь к контроллеру представления имени отца, а когда я go возвращаюсь к контроллеру представления имени, имя не отображается. Поэтому мне нужно go вернуться к контроллеру представления имен, а затем к контроллеру отображения дисплея

Подробнее о моем приложении iOS: в моем приложении включены настройки пользователя по умолчанию, поэтому имя сохраняется. И то же самое для контроллера представления отца. Я передаю данные между контроллерами представления. Это напишите ваше имя контроллера просмотра

//
//  ProfileViewController.swift
//  Medical ID
//
//  Created by Ashwin Paudel on 2020-04-22.
//  Copyright © 2020 Ashwin Paudel. All rights reserved.
//

import UIKit

class ProfileViewController: UIViewController, UITextFieldDelegate {


    @IBOutlet weak var nameTextField: UITextField!

    @IBOutlet weak var cityYouLiveIN: UITextField!

    @IBOutlet weak var phoneNumber: UITextField!

    @IBOutlet weak var dateOfBirth: UITextField!

    let defaults = UserDefaults.standard

    class func create() -> UIViewController? {

        let storyboard = UIStoryboard.init(name: "Main", bundle: nil)

        let controller = storyboard.instantiateInitialViewController()

        return controller
    }

    struct Keys {

        static let namess = "FullName"

        static let ContactNumber1 = "Number1"

        static let ContactNumber2 = "Number2"

        static let Bloodtype = "Blood"

        static let medHistory = "MEDHistore"

    }


    override func viewDidLoad() {
        super.viewDidLoad()

        self.nameTextField.delegate = self

        self.cityYouLiveIN.delegate = self

        self.phoneNumber.delegate = self

        self.dateOfBirth.delegate = self


        CheckForsavedname()

        CheckForSavedNumber()

        CheckForSavedNumber2()

        Bloodtype()



    }
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        var FirstVC = segue.destination as! FirstViewController
        FirstVC.fullNameString = nameTextField.text!
        FirstVC.locationString = cityYouLiveIN.text!
        FirstVC.phoneNumberString = phoneNumber.text!
        FirstVC.dateofbirthstring = dateOfBirth.text!
        //dateofbirthstring

    }


    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        nameTextField.resignFirstResponder()
        cityYouLiveIN.resignFirstResponder()
        phoneNumber.resignFirstResponder()
        dateOfBirth.resignFirstResponder()
        return (true)
    }

    @IBAction func saveButtonTapped(_ sender: Any) {

        if nameTextField.text != "" {

            performSegue(withIdentifier: "segueToHome", sender: self)

        } else if cityYouLiveIN.text != "" {

            performSegue(withIdentifier: "segueToHome", sender: self)

        } else if phoneNumber.text != "" {

            performSegue(withIdentifier: "segueToHome", sender: self)

        } else if dateOfBirth.text != "" {

            performSegue(withIdentifier: "segueToHome", sender: self)

        }

        saveInfo()

        CheckForsavedname()

        CheckForSavedNumber()

        CheckForSavedNumber2()

        Bloodtype()


    }

    func saveInfo() {
        //Save the imformation
        defaults.set(nameTextField.text!, forKey: Keys.namess)
        //Save information
        defaults.set(cityYouLiveIN.text!, forKey: Keys.ContactNumber1)
        //Save information
        defaults.set(phoneNumber.text!, forKey: Keys.ContactNumber2)
        //Save information
        defaults.set(dateOfBirth.text!, forKey: Keys.Bloodtype)
        //Save information


    }
    func CheckForsavedname() {
        //If somthing is written, save it. If not, leave it alone.
        let name = defaults.value(forKey: Keys.namess) as? String ?? ""
        nameTextField.text = name
    }


    func CheckForSavedNumber() {
        //If somthing is written, save it. If not, leave it alone.
        let Number1 = defaults.value(forKey: Keys.ContactNumber1) as? String ?? ""
        cityYouLiveIN.text = Number1
    }


    func CheckForSavedNumber2() {
        //If somthing is written, save it. If not, leave it alone.
        let Number2 = defaults.value(forKey: Keys.ContactNumber2) as? String ?? ""
        phoneNumber.text = Number2
    }


    func Bloodtype() {
        //If somthing is written, save it. If not, leave it alone.
        let bloods = defaults.value(forKey: Keys.Bloodtype) as? String ?? ""
        dateOfBirth.text = bloods
    }



}

А затем это контроллер просмотра для отображения текста

//
//  FirstViewController.swift
//  Medical ID
//
//  Created by Ashwin Paudel on 2020-04-22.
//  Copyright © 2020 Ashwin Paudel. All rights reserved.
//

import UIKit

class FirstViewController: UIViewController {

    @IBOutlet weak var fullNameLabel: UILabel!
    @IBOutlet weak var locationLabel: UILabel!
    @IBOutlet weak var phoneNumberLabel: UILabel!
    @IBOutlet weak var dateOfBirthLabel: UILabel!

    var fullNameString = String()
    var locationString = String()
    var phoneNumberString = String()
    var dateofbirthstring = String()

    override func viewDidLoad() {
        super.viewDidLoad()

        fullNameLabel.text = fullNameString
        locationLabel.text = locationString
        phoneNumberLabel.text = phoneNumberString
        dateOfBirthLabel.text = dateofbirthstring


    }



}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...