2016-08-17 25 views
1

下午好!iOS UITextView代表另一個文件

打擾我的英語。

我有一個問題,試圖將textView的委託分配給另一個類。

  1. 我有一個評論觀察控制器和一個連接到它的故事板的ViewController。
  2. 我已經有ViewController(storyBoard)上的UITextView元素和CommentViewController(稱爲newCommentTextView)的出口。
  3. 我創建了一個類CommentTextViewDelegate:NSObject,UITextViewDelegate。
  4. 在CommentsViewController的viewDidLoad我做這個

    newCommentTextView.delegate = CommentTextViewDelegate() 
    
  5. 我已經添加和textViewDidChange,和textViewDidEndEditing和_:shouldChangeTextInRange:...。但是當我改變textView的文本時,這些函數都不會被調用!

我怎麼了? 謝謝。

+0

爲什麼要在控制器中設置插座並將代表設置爲另一個? –

+0

CommentsViewController和ViewController之間有什麼關係? – Catoshi

+0

@TonyHan在storyBoard中,在viewController的身份檢查器中,我將類分配給了CommentsViewController。 –

回答

1

委託是一個弱指針。因此,您需要創建CommentTextViewDelegate類的屬性,然後根據以下代碼將其分配給文本視圖委託。在此之後,只要發生任何更改,您都會收到通知。

let textViewDelegate = CommentTextViewDelegate() 
    func viewDidLoad() { 
    newCommentTextView.delegate = textViewDelegate 
    } 
2

newCommentTextView.delegate = CommentTextViewDelegate()已CommentTextViewDelegate的和error.The實例已經viewDidLoad中後釋放()是called.So CommentsViewController應該擁有的CommentTextViewDelegate

let textViewDelegate = CommentTextViewDelegate() 
func viewDidLoad() { 
    newCommentTextView.delegate = textViewDelegate 
}