2016-04-04 3 views
0

Я пытаюсь использовать управляемые строки из отдельного класса в моем ViewController. Чтобы все было просто, допустим, у меня есть String в Other.class, который я меняю, используя stringByReplacingOccurrencesOfString. Затем я устанавливаю это значение на String в моем ViewController.Получение строковых значений из другого класса

var name: String! 
name = "John" 

... 

func changeString { 
    name = name.stringByReplacingOccurrencesOfString("a", withString: "e") 
} 

self.mainViewController!.fakeName = name 

В моей ViewController, я затем использовать эту строку в качестве значения для ячейки таблицы, как так:

var fakeName: String? 
... 
if (indexPath.row == 0) { 
      cell.nameLabel.text = fakeName! 
     } 

По какой-то причине, fakeName продолжает возвращать ноль значение, и я понятия не имею, почему. Есть идеи?

Я разработчик Java, который является новым для Swift, поэтому я просто привык к синтаксису. Извиняюсь, если этот вопрос имеет действительно очевидный ответ.

+0

Каков ваш вопрос? Какая часть не работает? –

+0

use push segue in viewcontroller – iOS

+0

fakeNamereturns - это значение nil в моем контроллере. Извините, я отредактирую сообщение, чтобы уточнить это. – wasimsandhu

ответ

1

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

var fakeName : String = "" 
// First Class where you change the value of name 
class ViewController : UIViewController 
{ 
    func changeString { 
    name = name.stringByReplacingOccurrencesOfString("a", withString: "e") 
} 
} 

// Other Class where you use the value of name 
class mainViewController : UIViewController 
{ 
    ...... 
if (indexPath.row == 0) { 
      cell.nameLabel.text = fakeName 
     } 
} 

// согласно вашему вопросу, вы должны выделить переменную не только decleare только

var fakeName: String = "" 
+0

Не нужно выделять сразу, если это «Необязательный», его можно установить позднее. – ColGraff

+0

Это ответило на мой вопрос, но проблема в том, что я забыл называть 'self.table.reloadData()'. Спасибо за беспокойство! :) – wasimsandhu

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