2016-04-14 1 views
0

У меня есть два изображения XIB, загружаемые с помощью жестов, и вы хотите обновить текстовое поле второго XIB с моего первого XIB.Обновление внешних объектов XIB программно в Swift

Вот быстры код, который я до сих пор, но кажется, что он не работает от одного вида к другому:

// This code is placed in ViewController0.xib 
let vc1 = ViewController1(nibName: "ViewController1", bundle: nil) 
vc1.resultsTextBox?.text = "test"   
// vc1.asd(1) //Tried calling a function that's in that view but it didn't work either. 
+0

Этот код создает новый экземпляр vc1. Вам нужно получить ссылку на экземпляр vc1, который уже загружен, возможно, с помощью вашего контроллера корневого представления, который является мангой, переходящей в салфетки, на свойство vc0 при загрузке vc1 – Paulw11

ответ

0

Если resultsTextBox является UITextField то, скорее всего, еще не инициализирован. Это делается в viewDidLoad. Лучшей стратегией является установка некоторой строковой переменной для «проверки». Затем в viewDidLoad установите resultsTextBox.text

let vc1 = ViewController1(nibName: "ViewController1", bundle: nil) 
vc1.textBoxStr = "test" 


override func viewDidLoad() { 
    super.viewDidLoad() 
    vc1.resultsTextBox?.text = textBoxStr 
    ... 
} 

Надеюсь, что это имеет смысл.

+0

Не повезло. :-(Мое приложение уже загружает ViewController0 и ViewController1 изначально и позволяет мне прокручивать между ними, поэтому я предполагаю, что UITextField в ViewController1 уже инициализирован, поскольку я могу видеть исходный текст. Однако, когда я делаю обновления из viewController0, код, который я включил выше, обновления не выполняются. Только обновления для UITextField успешны из ViewController1. – theflarenet

+0

Я понимаю, что вы имеете в виду. Используя вышеприведенный код, вы создадите новый ViewController1 в ViewController2, если только я все еще не вижу чего-то Если вы разрешаете прокручивать между двумя VC, то каждый из VC должен иметь дескриптор другого, после того, как экземпляр VC. Vc1 = ... затем vc1.otherVC = vc2. Тогда то же самое для vc2. Имеет ли это смысл ? – geekay

+0

Ahh, теперь это имеет смысл, так как я все время создавал новые экземпляры. Я пытался сделать то, что вы предложили, но я терпеть неудачу, глядя на похожие альтернативы Айвз. Я отправил вопрос с кодом, в котором мои взгляды подключены для прокрутки: http://stackoverflow.com/questions/36509356/global-data-update-on-slided-views-swift – theflarenet