2016-11-13 10 views
0

私はUITextViewしか持たないView Controllerを持っています。 UITextViewをビューコントローラに渡す別のもので初期化する際に問題が発生しました。ここでswift - UITextViewを正しく設定する方法

は、ビューコントローラのためのコードです:

(Fileクラスは、文字列変数を持っている:名前、およびUITextView変数:コンテンツ)

// MARK: Properties 
var file: File? 
@IBOutlet weak var textViewHome: UITextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 

    navigationItem.title = file?.name 
    self.automaticallyAdjustsScrollViewInsets = false 

    print(file?.content.text) 
    print(textViewHome.text) 
    textViewHome = file?.content 
    print(textViewHome.text) 
} 

それらのprint文の出力は、次のとおりです。

Optional("hello") 

hello 

したがって、textViewHome変数は正しい文字列で設定されますが、アプリの実行時にはテキスト表示に何も表示されません。私はこれに似た質問をたくさん見たことがありますが、UITextView.text変数が正しいが実際には何も表示されない場所は見つかりませんでした。アドバイスありがとう

+2

使用 'textViewHome.text =ファイルを持っているのだろうか?代わりに' textViewHome =ファイルの '.content.text? – ELKA

+0

を.content'私は、以前のことを試してみましたが、私は実際にtextViewHome =ファイル?.content行を削除しませんでした。私はそれを削除した後、それは働いた。物語の道徳は、互いに等しいUITextViewsを設定しません。ありがとう@ELKA – bzimm01

+0

実際に設定したtextViewは何も表示されなかったビュー階層にありません。 – ELKA

答えて

1

主な問題は、サブビューがviewController.viewなので、ビュー階層(画面上に表示されているもの)がtextViewHomeだったことです。 textViewHomeのポインタを変更すると、viewControllerのポインタが変更され、階層に触れなかったため、ビュー階層には古い階層が残っていました。

デザイン改善:ファイルにはUITextViewではなく文字列を所有させる方が良いでしょう。あなたのViewControllerで

class File{ 
    var name: String 
    var content: String 
} 

、あなたは

textViewHome.text = file?.content //content is a string 
関連する問題