2015-12-16 5 views
0

Когда приложение запускается, проверьте функцию подключения к Интернету. Если экран «Заставка» «Да» передает информацию об этом в «Просмотр контроллера». Но здесь у меня проблема, потому что между SplashScreen и ViewController есть навигационный контроллер. Это выглядит следующим образом:Как передавать данные между SplashScreen и ViewController в Swift

Situation

я передать данные из заставки с помощью этой функции:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let VC:ViewController = segue.destinationViewController as! ViewController 
    VC.connection = isConnection 

// connection is a bool var in VievController 
} 

но когда я решил использовать NavigationController Xcode получить мне информацию об ошибке, как это «не удались отливать значение типа 'UINavigationController' (0x1835cec) к 'DKTV_Reader.ViewController' (0x23888)»показ моего в этой временной линии:

let VC:ViewController = segue.destinationViewController as! ViewController 

, прежде чем я использовал NAvigationController, это решение сработало отлично.

ответ

1

Ваш желаемый ViewController встроен в UINavigationController, так что технически это не является destinationViewController, а скорее UINavigationController есть. destinationViewController, что вы хотите первым контроллер представления в навигационный контроллер, который можно затем необязательно отбрасывать как тип ViewController

let destination = (segue.destinationViewController as? UINavigationController)?.viewControllers.first as? ViewController 
destination?.connection = isConnection 
+0

это работает! Спасибо за помощь! – Berike

Смежные вопросы