나는 UITabBarController
스토리 보드에있는 해당 스위프트 클래스는 내가 그 클래스의 데이터 변수가 MyTabBarController.swift라는 프로그램에 의해 다른 컨트롤러에서 줄 컨트롤러 :프로그래밍
let myTabBarStoryboard = UIStoryboard(name: "myTabBar", bundle: Bundle.main)
let myTabBarController = myTabBarStoryboard.instantiateViewController(withIdentifier:"myTabBarController") as! UITabBarController // I can't cast it to MyTabBarController, because it would raise runtime error of type casting
// now I have a data prepared for `myTabBarController` instance
let data = prepareMyData()
// how can pass data to myTabBarController now? like I said above, the type casting to MyTabBarController is not allowed
present(myTabBarController, animated:true, completion: nil)
내 질문은로 데이터를 전달하는 방법을 위의 코드의 주석에? 당신이 MyTabBarController
로 캐스팅 할 수없는 경우
(내가 그렇게 myTabBarController
에 데이터를 설정하려는 데이터에 액세스 할 수 있는지/탭 표시 줄 컨트롤러에 의해 호스팅되는 모든 뷰 컨트롤러에 의해 공유)
데이터를 탭 바 컨트롤러가 호스팅하는 모든 컨트롤러에서 공유해야한다면 탭 바 컨트롤러에 데이터를 저장하지 않을 것입니다. 분명히 더 많은 문맥이 없이는 틀릴 수도 있지만, 데이터 관리와 어떤 종류의 매니저 클래스를 제안 할 수 있을까요? 그리고 나서 다른 모든 컨트롤러는 관리자로부터 바로 가져 오거나 설정할 수 있습니다. 프로젝트의 전체 범위를 모른 채 광산에 대한 제안. – TNguyen
감사합니다. @ TPN1994, 제안에 따라 가면 데이터 관리자가 더 이상 싱글 톤이되어야합니까? –
그것은 완전히 당신이 필요로하지만 내 경우에는 내 모든 싱글 톤에 따라 달라집니다. (그리고 앱의 본질 때문에 이것이 더 자주 발생하지 않을 것이라고 생각합니다.) – TNguyen