2016-09-11 4 views
0

현재 Swift에 앱을 쓰고 있으며 모든 UI를 프로그래밍 방식으로 구현했습니다. 나는 그런 종류의 소진을 할 것이므로 최근에 storyboard을 사용하기로 결정했지만 버그가 붙어 있습니다. 값을 다음 viewController로 넘김

FirstViewControllerAppDelegate에서 mainContext 통해 전달하는 mainContext의 값 nil이다.

 let vc = FirstViewController() 
     vc.mainContext = mainContext 
     window?.rootViewController = vc 

하지만 지금은 ID와보기를 인스턴스화하기 때문에 내가 StoryBoard 함께 일하고 있다는이 같은 더 이상 유효하지 않습니다 : 첫째로, 내가 프로그래밍 모두를 쓸 때, 내 코드는 다음처럼 보였다 이 :

  let storyboard = UIStoryboard(name: "Main", bundle: nil) 
      var vc = storyboard.instantiateViewControllerWithIdentifier("FirstView") as! FirstViewController 
      vc.mainContext = mainContext 

그러나이 경우

은, 문맥 nil입니다. 나는이 같은 VC의 인스턴스를하지 않으면 내 콘센트 nil가 있으며이 오류 얻을 :

fatal error: unexpectedly found nil while unwrapping an Optional value 

사람은 알고 있나요 내 mainContext를 전달하는 방법을? 당신은 rootViewController에 접근하지 않는

답변

1

, 당신은 rootViewController이

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
var vc = storyboard.instantiateViewControllerWithIdentifier("FirstView") as! FirstViewController 
vc.mainContext = mainContext 

로 대체 액세스하기 위해, 새로운 뷰 컨트롤러를 만들고 그것으로 아무것도하지 않는

if let vc = self.window?.rootViewController as? FirstViewController { 
    vc.mainContext = mainContext 
} 
관련 문제