最近私は新しいアプリケーションを開発しています。私はこの問題を抱えています。たびに私は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
}
textViewDidChangeのデリゲートメソッドを実装する必要があります問題は、まだエラー、私はのviewDidLoad外detailDescriptionLabel.textを言及するたびにすることを持続します登場する。しかし、ありがとう。 –
"detailDescriptionLabel"宣言のような、あなたのコードをもう少し見ることができますか? – Lazy
私は上の質問でクラス全体全体を追加しました。ありがとう。 –