TabBarController를 던지는 두 ViewController간에 데이터 전달을 원합니다. 첫 번째 ViewController 안에는 텍스트 필드와 버튼이 있습니다. 두 번째 레이블 안에 위치. textField 및 푸시 버튼에 텍스트를 쓸 때이 텍스트가 두 번째 ViewController의 Label에 나타날 것으로 예상됩니다. 그러나 아무 일도 일어나지 않습니다.TabBar 컨트롤러에 데이터 전달
그리고 내 코드 :
최초의 ViewController :
import UIKit
class FirstViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
@IBAction func enter(_ sender: Any) {
if textField.text != "" {
if let window = UIApplication.shared.delegate?.window, let tabBarController = window?.rootViewController as? UITabBarController, let second = tabBarController.viewControllers?.first as? SecondViewController {
second.label.text = textField.text
tabBarController.selectedIndex = 0
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
두 번째의 ViewController :
import UIKit
class SecondViewController: UIViewController {
@IBOutlet weak var label: UILabel!
var myString = String()
override func viewDidLoad() {
super.viewDidLoad()
label.text = myString
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
치명적인 오류 : 옵션 값 없음을 풀기 동안 예기치 않게 당신이 (가)'않고 직접 다른 속성과 viewDidAppear''에서 SecondVC에서 변경 label.text' 변경하지 마십시오 –