swift クラス間での値の受け渡し
言語はswift です。
複数のクラス間でのデータの受け渡し方法がわかりません。
例えばクラス名 A,Bの二つがあったとして
class A{
var a = "値"
}
class B{
}
そしてクラスAで a = "値" と入れたものを
クラスBで使いたいのですがその方法がわかりません。
自分で調べて見る限り移譲の分野なのかな?と思ったのですが、、、
<追加>
クラスeditの imageView.image をクラスviewControllerで使う方法がわかりません。
import UIKit
var data = [String]()
class edit: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
@IBAction func tap(sender: UITapGestureRecognizer) {
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){
let photo:UIImagePickerController = UIImagePickerController()
photo.delegate = self
photo.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(photo,animated: true,completion: nil)
}
}
@IBOutlet weak var imageView: UIImageView!
//画像が選択された時
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if info[UIImagePickerControllerOriginalImage] != nil{
imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
}
picker.dismissViewControllerAnimated(true,completion:nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var textField: UITextField!
//Saveボタン
@IBAction func save(sender: AnyObject) {
data.append(textField.text!)
textField.text = ""
NSUserDefaults.standardUserDefaults().setObject(data, forKey: "pass")
self.navigationController?.popViewControllerAnimated(true)
}
}
import UIKit
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet weak var table: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if NSUserDefaults.standardUserDefaults().objectForKey("pass") != nil{
data = NSUserDefaults.standardUserDefaults().objectForKey("pass") as! [String]
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
//日付取得
func cat()->String{
let month = NSDate()
let year = NSDateFormatter()
year.dateFormat = "y'年'M'月'd'日'"
year.locale = NSLocale(localeIdentifier: "ja_JP")
let str = year.stringFromDate(month)
return str
}
func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)->UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("mycell",forIndexPath:indexPath) as! Custom
cell.titleLabel?.text = cat()
cell.subtitle?.text = data[indexPath.row]
return cell
}
override func viewDidAppear(animated: Bool){
table.reloadData()
}
}
<追加>
クラスViewControllerとクラスeditはstoryboardのviewControllerに一つずつ、つけていて
クラスViewControllerのviewControllerからsegueで繋いでいます。
よろしくお願いします。