2016-11-13 4 views
0

Я борюсь с передачей данных из приложения appDelegate в один из моих контроллеров. Я попытался использовать segues для этого, но это просто не работает. Так что мне интересно, так это; есть ли другой способ представить другой контроллер представления и передать ему данные, кроме использования segues?AppDelegate segue alternative pass data

Заранее благодарен.

+1

Вы можете только 'segue' из' viewController' к другому. 'AppDelegate' не является viewController, и поэтому вы ** не можете ** segue. Вы должны либо использовать шаблон делегирования, либо уведомления. Или, возможно, если вы используете неправильный термин. Вы можете установить свой rootViewController – Honey

+0

@Honey, вот что я подумал, спасибо за это. Однако могу ли я представить Viewcontroller через раскадровку, а затем передать данные? – askaale

+1

Рекомендую посмотреть [этот вопрос] (http://stackoverflow.com/questions/19962276/best-practices-for-storyboard-login-screen-handling-clearing-of-data-upon-logou/21889172#21889172) Это имеет очень простой дизайн с хорошими ответами. – Honey

ответ

2

Вы не можете использовать SEGUE для ViewController из AppDelegate, потому что AppDelegate не ViewController. Segues работает только с ViewControllers.

Но вы можете инициировать идентификатор в раскадровки от вашего AppDelegate к вашему ViewController, так что вы можете отправить данные.

Для вас есть пример;

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     let yourViewController = storyboard.instantiateViewController(withIdentifier: "yourViewControllerStoryboardIdentifier") as! YourViewControllerClassName 
     yourViewController.yourProperty = "yourValue" 
     self.window?.rootViewController = yourViewController 
     self.window?.makeKeyAndVisible() 
     return true 
    } 

Вы можете установить ваш Storyboard ID в вашем Main.storyboard. Просто выберите свой ViewController и установите раздел идентификатора раскадровки, щелкните мышью по значку . Используйте иллюстрацию Раскадровка ID.

enter image description here

+0

Большое вам спасибо! Это сработало, немного изменив код! – askaale

+1

так счастливое кодирование :) – emresancaktar