Итак, я работал с библиотекой SmileLock. У меня проблемы с изменением нескольких текстов и выпусков, когда представление снова загружается после ввода правильного пароля. Это первая страница входа в систему, где вы перейдете к вводу пароля VC. Я попытался и разъяснил свою проблему через комментарии в моем коде.
import UIKit
class LoginVC: UIViewController {
//Made this to access this VC from other VCs.
static var instance = LoginVC()
//A button which is activated if the password is correct and goes to the next page.
@IBOutlet weak var enterMainPage: UIButton!
//A label which I'd want to change its text.
@IBOutlet weak var statusSection: UILabel!
//MARK: Property
let isBlurUI = true
var loginVCID: String!
var mainTBCID: String!
override func viewDidLoad() {
super.viewDidLoad()
print("correct 8")
//The button is inactive in every load.
enterMainPage.isEnabled = false
PASSWORD_IS_CORRECT: Bool = false
//This loads up the password entry page when the login button is pressed.
loginVCID = isBlurUI ? "BlrPasswordLoginVC" : "PasswordLoginVC"
}
@IBAction func enterMainPagePressed(_ sender: UIButton) {
}
@IBAction func presentLoginVC(_ sender: AnyObject) {
PASSWORD_IS_CORRECT = true
print("correct 10")
present(loginVCID)
//This was the only way I was not getting any errors (Unexpectedly found nil).
self.loadView()
}
func present(_ id: String) {
let mainVC = storyboard?.instantiateViewController(withIdentifier: id)
mainVC?.modalPresentationStyle = .overCurrentContext
present(mainVC!, animated: true, completion: nil)
}
}
Это страница ввода пароля, на которой я пытался изменить текст метки напрямую, но в результате возникла ошибка «Неожиданно обнаружен ноль при распаковке». Я укажу это в коде ниже:
override func viewDidLoad() {
super.viewDidLoad()
//create PasswordUIValidation subclass
passwordUIValidation = MyPasswordUIValidation(in: passwordStackView)
passwordUIValidation.success = { [weak self] _ in
print("*️⃣ success!")
PASSWORD_IS_CORRECT = true
if PASSWORD_IS_CORRECT {
//This is where I got the unexpected unwrapping error.
LoginVC.instance.statusSection.text = "sample text"
print("password is correct")
}
Все, что мне нужно, - это возможность изменить текст метки и несколько других изменений. Не стесняйтесь меняться всякий раз, когда вы чувствуете необходимость.