2016-04-04 21 views
0

私のViewControllerの別のクラスから操作された文字列を使用しようとしています。物事を単純にするため、stringByReplacingOccurrencesOfStringを使用して変更しているStringOther.classにあるとします。私はViewControllerStringにこの値を設定します。私ViewController別のクラスから文字列値を取得する

var name: String! 
name = "John" 

... 

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

self.mainViewController!.fakeName = name 

、私はそのようにのような表のセルの値として、その文字列を使用します。

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

何らかの理由で、fakeNameがnilの値を返すと、私はなぜ見当がつかない続けます。何か案は?

私はSwiftを初めて使用するJava開発者ですから、構文に慣れています。この質問に本当に明白な答えがある場合は、お詫び申し上げます。

+0

をdecleareないあなたの質問は何ですか?どの部分が動いていないのですか? –

+0

viewcontrollerでpush segueを使用する – iOS

+0

fakeNamereturnsは、View Controllerのnil値です。申し訳ありませんが、私はそれを明確にするために投稿を編集します。 – wasimsandhu

答えて

1

私はあなたのために働いていると思います。例のクラスから変数outを宣言します。その他のもの.swiftファイルを1つ作成し、変数をグローバル変数として宣言します。

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 
     } 
} 

//あなたの変数を割り当てる必要があなたの質問のとおりにはちょうどのみ

var fakeName: String = "" 
+0

'Optional'の場合はすぐに割り当てる必要はなく、後で設定することができます。 – ColGraff

+0

これは私の質問に答えましたが、実際には 'self.table.reloadData()'を呼び出すことを忘れていました。御苦労さま! :) – wasimsandhu

関連する問題