이 문제와 관련하여 많은 다른 게시물을 읽었지만 해결책 중 어느 것도 나를 위해 작동하지 않는 것 같습니다.
새 앱을 시작하고 탐색 컨트롤러 내에 초기 ViewController를 배치했습니다. 두 번째보기를 만들고 스토리 보드에서 segue로 연결했습니다. segue가 성공적으로 작동하고 두 번째 화면의 print 문에서 전송중인 데이터를 볼 수 있지만 화면이 검은 색으로 표시됩니다.
WelcomeScreen :
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segueToTraits"{
if let gender = self.selectedGender{
let traitVC = segue.destinationViewController as? TraitViewController
traitVC!.gender = gender
}
}
}
func sendGenderToTraitsView(gender : String?){
performSegueWithIdentifier("segueToTraits", sender: self)
}
@IBAction func button1(sender: UIButton) {
selectedGender = boyGender
self.sendGenderToTraitsView(selectedGender)
}
@IBAction func button2(sender: UIButton) {
selectedGender = girlGender
self.sendGenderToTraitsView(selectedGender)
}
스토리 보드 : 내 스토리 보드 이미지 링크 내 segue는 다음과 같이 설정됩니다. 내 segue 정보 이미지 링크
또한 내 viewController의 이름은 WelcomeViewController 및 TraitViewController입니다. welcomeVC 및 traitsVC의 스토리 보드 ID가 있습니다.
어떤 도움이라도 대단히 감사하겠습니다. 다른 정보가 필요하면 알려주세요.
나는 당신의 앱을 빌드했고 모든 것이 작동합니다. 아마도 당신은 뭔가를 놓쳤을 것입니다. 여기 내 솔루션이 있습니다. (참고 : 코드는 Swift 3.0에 있지만 Swift 2. *에 쉽게 적용 할 수 있어야합니다 .)
스토리 보드 :
segueToTraits 식별자를 설정합니다.
스토리 보드에서 TraitViewController 클래스를 사용자 정의 클래스로 설정합니다.
버튼이있는 뷰 컨트롤러 :
import UIKit
class ViewController: UIViewController {
let boyGender = "boy"
let girlGender = "girl"
var selectedGender: String?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segueToTraits"{
if let gender = self.selectedGender {
let traitVC = segue.destination as? TraitViewController
traitVC!.gender = gender
}
}
}
func sendGenderToTraitsView(gender : String?){
performSegue(withIdentifier: "segueToTraits", sender: self)
}
@IBAction func button1(sender: UIButton) {
selectedGender = boyGender
self.sendGenderToTraitsView(gender: selectedGender)
}
@IBAction func button2(sender: UIButton) {
selectedGender = girlGender
self.sendGenderToTraitsView(gender: selectedGender)
}
}
트레이 트 뷰 컨트롤러 :
import UIKit
class TraitViewController: UIViewController {
var gender: String = ""
override func viewDidLoad() {
super.viewDidLoad()
print("gender: \(gender)")
}
}
결과:
여기 에서 샘플 프로젝트를 찾을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다