2014-09-28 2 views
0

У меня есть два ViewControllers и оба с их файлом класса .swift.Чтение/запись переменной из другого .swift файла

Вещь у меня есть переменная, объявленная в первом ViewController, и она будет заполнена значением, введенным пользователем в первом представлении. Но тогда я хочу показать это значение в другом представлении (im используя контроллер панели вкладок).

Но проблема в том, что я не знаю, как ссылаться на эту переменную из SecondViewController.swift, так как переменная была объявлена ​​в FirstViewController.swift

+0

Добро пожаловать в ОС! Если вы можете предоставить свой код, вы сможете получить дополнительную помощь от кого-то. Часто бывает трудно понять, что происходит без воспроизводимых данных и кода. – jazzurro

+0

У меня много кода, потому что я получаю прогноз погоды с веб-сайта в формате JSON. Но дело в FirstViewController у меня есть textField, и я хочу показать значение, введенное пользователем в другом ViewController. Оба viewControllers подключены контроллером панели ввода – LPS

ответ

0

для метода протокола/делегата от общего доступа к данным см:

https://medium.com/swift-programming/ios-swift-protocols-and-delegates-7193f7f58b8a

http://www.raywenderlich.com/75289/swift-tutorial-part-3-tuples-protocols-delegates-table-views

для сохранения в файл с помощью NSCoding, я отправил код ранее сегодня здесь:

SWIFT How to create a NSCoding Subclass and call it from another class?

Если вы хотите сохранить более просто с помощью NSUserDefaults:

Store [String] in NSUserDefaults (Swift)

+0

Спасибо за помощь! – LPS

+0

Наслаждайтесь. Если у вас есть проблема, отправьте код. –

0

Есть два распространенных способа перемещения данных. Если вы просто хотите, чтобы данные экземпляра (текущий экземпляр ViewController1) переместились в ViewController2, вы передали данные через функцию segue и prepareForSegue. Это один из самых важных стрингов для изучения. Я свяжусь с некоторыми учебниками ниже. Имейте в виду, что Xcode 6 развился, и синтаксис может немного измениться. Итак, для функции prepareForSegue вам нужно найти его в документации, щелкнув по команде слово «prepareForSegue» в вашем быстром файле, и оно перенесет вас в документацию, где вы можете вырезать пасту.

http://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/

http://bharathnagarajrao.wordpress.com/2014/06/17/swiftly-learning-swift/

Другой распространенный способ передачи данных, чтобы иметь данные сохраняются путем сохранения в файл. Еще один набор ссылок. Я также рекомендовал бы перейти к github и искать проекты с помощью как prepareForSegue, так и Swift для дальнейших примеров.

+0

спасибо за ваш ответ. Я читаю учебные пособия, чтобы использовать функцию PrepareForSegue, но в основных примерах используется контроллер навигации, но в моем проекте im используется контроллер панели вкладок. Вы знаете, как реализовать этот метод с помощью панели вкладок? – LPS

+0

ОК, на панели вкладок, когда вы идете туда и обратно, вы открываете ранее открытый экземпляр этого представления и не переходите к новому экземпляру. Вы можете использовать методы протокола/делегата для обмена информацией, или вы можете сохранять данные в файл и извлекать их. –

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