2016-06-21 6 views
0

最近私は新しいアプリケーションを開発しています。私はこの問題を抱えています。たびに私はviewdidloadの外で私のtextviews.textプロパティにアクセスしようとすると、エラー "インスタンスメンバー 'detailDescriptionLabel'(私のtextview)を 'DetailViewController'(私がいるクラス)で使用することはできません"私はあなたの助けを本当に感謝します。ありがとう。Swift - DetailViewControllerのUITextViewにアクセス

エラーが立ち上がっコード:

var updated: String = detailDescriptionLabel.text { 
    didSet { 

     if updated != oldValue { 
      textFieldDidChange() 
     } 

    } 
} 

全クラス全体、(ちょうど包み)テーブルの上に細胞を制御します。

var start : CGPoint? 

var red : CGFloat = 0.0 
var green : CGFloat = 0.0 
var blue : CGFloat = 0.0 


@IBAction func erase(sender: AnyObject) { 
    red = 1 
    green = 1 
    blue = 1 
} 

@IBAction func clear(sender: AnyObject) { 
    self.imageView.image = nil 
} 


@IBAction func blackPen(sender: AnyObject) { 
    red = 0 
    green = 0 
    blue = 0 
} 

@IBAction func redPen(sender: AnyObject) { 
    red = 1 
    green = 0 
    blue = 0 
} 

@IBAction func bluePen(sender: AnyObject) { 
    red = 0 
    green = 0 
    blue = 1 
} 

@IBOutlet weak var detailDescriptionLabel: UITextView! 

@IBOutlet weak var imageView: UIImageView! 

let notes = PFObject(className: "Notes") 



var detailItem: AnyObject? { 
    didSet { 
     // Update the view. 
     self.configureView() 
    } 
} 

func configureView() { 

} 


override func viewDidLoad() { 

    super.viewDidLoad() 


    // Do any additional setup after loading the view, typically from a nib. 
    self.configureView() 

} 




var updated: String = detailDescriptionLabel.text { 
    didSet { 
     if updated != oldValue { 
      textFieldDidChange() 
     } 

    } 
} 


func textFieldDidChange() { 
    let query = PFQuery(className: "Notes") 
    query.getObjectInBackgroundWithId("Content") { (notes, error) -> Void in 

     notes!["Content"] = self.detailDescriptionLabel.text 
     print("Updated") 


    } 
} 


override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) { 
    let newText = change![NSKeyValueChangeNewKey] as! String 
    print(newText) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


func draw(start : CGPoint, end: CGPoint) { 
    UIGraphicsBeginImageContext(self.imageView.frame.size) 
    let context = UIGraphicsGetCurrentContext() 
    imageView?.image?.drawInRect(CGRect(x: 0, y: 0, width: imageView.frame.width, height: imageView.frame.height)) 
    CGContextSetLineWidth(context, 6) 
    CGContextBeginPath(context) 
    //Define starting point 
    CGContextMoveToPoint(context, start.x, start.y) 
    //Define end point 
    CGContextAddLineToPoint(context, end.x, end.y) 
    //Close the path between the starting and ending point (draw) 
    CGContextSetRGBStrokeColor(context, red, green, blue, 1) 
    CGContextStrokePath(context) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    imageView.image = newImage 
} 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    let Touch = touches.first as UITouch! 
    start = Touch.locationInView(self.imageView) 
} 

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    let Touch = touches.first as UITouch? 
    let end = Touch?.locationInView(self.imageView) 
    if let s = self.start { 
     draw(s, end: end!) 
    } 
    self.start = end 
} 

答えて

0
var myString: String { 
    didSet { 
     if newValue != oldValue { 
      //what ever you wanna do here. 
     } 
    } 
} 

は、このコードを試してみてください。また、使用できる「newValue」もあります。

私が言ったように、いつでもUITextView.textがテキストを変更するときにこのコードを使用して更新してください。

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 
    myString = (textView.text+text) 
    return true 
} 
+0

textViewDidChangeのデリゲートメソッドを実装する必要があります問題は、まだエラー、私はのviewDidLoad外detailDescriptionLabel.textを言及するたびにすることを持続します登場する。しかし、ありがとう。 –

+1

"detailDescriptionLabel"宣言のような、あなたのコードをもう少し見ることができますか? – Lazy

+0

私は上の質問でクラス全体全体を追加しました。ありがとう。 –

0

それは、このようにメンバ変数を設定するようだが許可されていません...あなたは

関連する問題