2016-02-14 3 views
0

Я работаю над созданием приложения iOS. Когда я нажимаю кнопку «Войти», сервер отвечает, отправив JSON обратно в приложение. Я знаю, что информация отправляется обратно, потому что я могу распечатать информацию из LoginVC.передать объект JSON в TabBarViewController

При успешном входе в систему мне бы хотелось передать ответ сервера «в приложение». На данный момент я использую следующие две строки «перейти в приложение»:

let TabBarViewControllerObejct = self.storyboard?.instantiateViewControllerWithIdentifier("TabBarViewController") 
self.navigationController?.pushViewController(TabBarViewControllerObejct!, animated: true) 

Я хотел бы, что ответ будет доступен для всех видов в баре Controller Tab, поэтому я попытался создать класс для TabBarVC и добавить свойство, но при назначении ему значения во время ответа он терпит неудачу и не может найти свойство.

Я также попытался нажать navController на первое представление в TabBarVC, но затем я потерял панель вкладок.

Я попытался использовать приведенные выше утверждения, чтобы создать экземпляр TBVC, а затем установить свойство этого класса в строку ответа. Я не смог назначить это правильно, поэтому я не мог получить доступ к нему из внутренних представлений по мере необходимости.

Я создал файл Swift под названием TabBarController, он подклассифицирует UITabBarController, и я указал XIB на использование этого класса. Я создал переменную ответа в этом классе и попытался установить это свойство между приведенными выше утверждениями. TabBarViewControllerObject.responseString = value который не работал, потому что я создал экземпляр UIViewController, а не UITabBarController. Я попытался изменить первый оператор, включив в него as! TabBarController, но затем функцию pushViewController на несоответствующих типах.

+0

Как вы указали информацию в 'TabBarViewController'? Как вы попытались получить данные в 'TabBarViewController' –

+0

@KyleRedfearn Отредактировано с ответом – Neurax

+0

Пожалуйста, покажите нам, что код –

ответ

0

После долгих исследований выяснилось, что я пытался использовать довольно небезопасную память, протекающую с одного взгляда на другой. В конечном итоге решение состояло в том, чтобы изменить стратегии использования какой-либо формы хранилища для размещения ответной строки, а затем захватить ее из другого представления.

Я обнаружил некоторую информацию о NSUserDefaults, которая (для моей ситуации) работала безупречно.

Чтобы сохранить что-то в магазине этот путь:

import Foundation использовать в NSUserDefaults объект

var defaults = NSUserDefaults.standardUserDefaults() Инициализировать по умолчанию

self.defaults.setObject(VALUE_TO_STORE, forKey: "KEY_NAME") хранить строку с ключом KEY_NAME и значением VALUE_TO_STORE.

затем в других точках зрения инициализировать Сошедшие таким же образом и когда вы хотите, чтобы получить это значение с помощью defaults.stringForKey("KEY_NAME")!

Надеется, что это помогает кто-нибудь, что застряло так, как я.

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