Я хочу создать приложение, способное генерировать изображение штрих-кода на втором контроллере, используя имя пользователя и пароль в качестве учетных данных, которые будут храниться с использованием пользовательских ошибок.
С этим кодом изображение штрих-кода не генерируется. Я попытался использовать preformSegue, но после перезапуска приложения, поскольку я больше не на первом контроллере, мой второй контроллер пуст и больше нет изображения штрих-кода.
Вот мой код для класса AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
check()
return true
}
func check(){
if UserDefaults.standard.value(forKey: "activation") != nil {
let vc = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ViewController2")
let navVC = UINavigationController(rootViewController: vc)
let share = UIApplication.shared.delegate as? AppDelegate
share?.window?.rootViewController = navVC
share?.window?.makeKeyAndVisible()
}
}
и для ViewController
class ViewController: UIViewController, UITextFieldDelegate {
var username: String = ""
var pass: String = ""
@IBOutlet weak var usernameCode: UITextField!
@IBOutlet weak var passwordCode: UITextField!
...
@IBAction func loginBtn(_ sender: Any) {
view.endEditing(true)
self.username = usernameCode.text!
self.password = passwordCode.text!
if username != "" && password != "" {
UserDefaults.standard.set(usernameCode.text!, forKey: "activation")
let vc = storyboard?.instantiateViewController(withIdentifier: "ViewController2")
navigationController?.pushViewController(vc!, animated: true)
//performSegue(withIdentifier: "go", sender: self)
}else{
let alert = UIAlertController(title: "warn!", message: "Not valid", preferredStyle: .alert)
let ok = UIAlertAction(title: "Ok", style: .default, handler: nil)
alert.addAction(ok)
present(alert, animated: true, completion: nil)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as! ViewController2
vc.generated = self.username
}
А для ViewController2
class ViewController2: UITableViewController {
var filter: CIFilter!
var generated = ""
@IBOutlet weak var barcodeImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.rowHeight = 50
if generated != ""{
let data = generated.data(using: .ascii, allowLossyConversion: false)
filter = CIFilter(name: "CICode128BarcodeGenerator")
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 10, y: 10)
let image = UIImage(ciImage: filter.outputImage!.transformed(by: transform))
barcodeImage.image = image
print("have")
}else {
print("error + \(generated)" )
}
}
....
}
Буду признателен, если кто-нибудь поможет мне с этим кодом.