2VIEWCONTROLLERからstruct person内のlet nameステートメントをcalしようとしています。私は別のビューコントローラから構造体エントリを呼び出すことができると思ったが、わからない。私が持っている主な問題は、構造物がただ1つの入り口を取ることができるということです。今すぐコードを購入するだけで入札を移転することができます。どのようにして複数の作品を保管することができますか?複数のエントリを保持する異なるビューコントローラからコール構造体を呼び出す(swift4)
のViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet var a: UITextField!
@IBOutlet var label: UILabel!
var contacts = [Person]()
@IBAction func save(_ sender: Any) {
let newPerson = Person(name: a.text!)
contacts.append(newPerson)
contacts.sort { $0.name < $1.name }
self.selectedPerson = newPerson
}
var selectedPerson:Person?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? twoViewController {
if self.selectedPerson != nil {
vc.person = selectedPerson
}}}
}
struct Person: CustomStringConvertible {
let name: String
var description: String {
return name
}}
twoVIEWCONTROLLER
import UIKit
class twoViewController: UIViewController {
@IBOutlet var l: UILabel!
var person:Person?
override func viewDidLoad() {
super.viewDidLoad()
if let p = self.person {
l.text = p.name
}}}
あなたは、そのインスタンスの 'name'のプロパティにアクセスする人のインスタンスにアクセスする必要があります。 – dasdom
'ViewController'が' twoViewController'を提示しているか、どちらも完全に独立していると言っていませんでしたか... – Ladislav
@Ladislav私は両方のviewcontrollerがお互いに独立して動作するようにしようとしています。 –