2016-09-11 4 views
0

В настоящее время я пишу приложение в Swift, и я реализовал весь свой пользовательский интерфейс программно. Я бы это изнурительно, поэтому недавно я решил использовать storyboard, но я застрял с ошибкой.Передача значения на следующий viewController

При прохождении через mainContext от AppDelegate к FirstViewController, значение mainContext является nil. В первую очередь, когда я написал все программно, мой код выглядит следующим образом:

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

Но теперь, когда я работаю с StoryBoard, это не действует больше, потому что я должен создать экземпляр вида с его ID, как это:

  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?

ответ

1

Вы не имеет доступа к RootViewController, вы создаете новый контроллер представления, и не делать ничего с ним, чтобы получить доступ к 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 
} 
Смежные вопросы