특정 사용자에 대해 앱에서 필요한 모든 정보를 보유하고있는 사용자 정의 "사용자"클래스를 사용하여 로그인 논리를 포함하는 iOS 앱을 만들려고합니다. 내 애플 리케이션은 또한 메인 인터페이스에 대한 탭 막대 컨트롤러가 있습니다. 그러나 로그인 화면의 "사용자"를 탭 표시 줄 컨트롤러로 전달한 다음 해당 하위보기 컨트롤러로 전달하는 가장 좋은 방법을 찾는 데 어려움을 겪고 있습니다. 각 탭마다 내비게이션 컨트롤러가 필요합니다. 다음과 같이 나의 현재 논리는 다음과 같습니다스위프트 3 : TabBarController에서 Child View 컨트롤러로 데이터 전달하기
LoginViewController.swift :
class LoginViewController: UIViewController {
...
func displayRideFinishedSurvey(loggedInUser: User) -> Void { //user provided valid credentials, time to login
let sb = UIStoryboard(name: "SuccessfulLogin", bundle: Bundle.main)
let cc = (sb.instantiateViewController(withIdentifier: "tabBarStoryboard")) as! MyTabBarController
cc.loggedInUser = loggedInUser // will be configured here for the entire app
present(cc, animated: true, completion: nil)
}
}
MyTabBarController.swift :
import UIKit
class MyTabBarController: UITabBarController {
var loggedInUser: User?
override func viewDidLoad() {
...
}
}
MyAccountViewController.swift :
import UIKit
class MyAccountViewController: UIViewController {
var loggedInUser: User?
override func viewDidLoad() {
...
}
}
설정하는 가장 좋은 방법이 될 것입니다 무엇 제공된 정보와
(여러 개의 탭, 그냥 예를 들어 있습니다) :
스크린 샷은 스토리 보드의 설정을 나타 내기 위해 아래에 볼 수있다 MyAccountViewController 내의 "loggedInUser"변수?
위 옵션 중 가장 전문적이고 효율적인 것은 무엇이라고 생각하십니까? –
@ JustinFrazer 가장 쉬운 방법은 child view 컨트롤러 클래스에서 public var를 만드는 것입니다. 자식보기 컨트롤러를 표시하기 전에 그에 따라 var를 설정하십시오. – jokeman