遷移元処理
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var selectedItem: String?
var selectedUrl: String?
var links:[Links] = [Links]()
override func viewDidLoad() {
super.viewDidLoad()
//テーブルセットアップ
tableView.delegate = self
tableView.dataSource = self
//データベース処理等
sql()
}
func updateTableView() {
//データベース処理再実行配列初期化等
links.removeAll()
sql()
// 再描画
self.tableView.reloadData()
}
func sql(){
//tableView配列データ全削除
links2.removeAll()
省略・・・・・・・・
}
func tableView(tableViewx: UITableView, numberOfRowsInSection section: Int) -> Int {
return links.count // link数に変更
}
func tableView(tableViewx: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// IdentifierがLinkViewCellのセルを使いまわす
let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("CustomCell")! as! CustomCell
// cellの内容を設定
cell.setCell(links[indexPath.row])
return cell
}
// Cell が選択された場合
func tableView(table: UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) {
//TableViewCell選択にてlinks配列よりsendデータ取得
selectedItem = String(links[indexPath.row].picid)
selectedText=String(links[indexPath.row].picUrl)
if selectedItem != nil {
// SubViewController へ遷移するために Segue を呼び出す
performSegueWithIdentifier("showDetailView",sender: nil)
}
}
// Segue 準備(複数のsegueをif文で分岐)
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "showDetailView") {
let subVC: DetailViewController = (segue.destinationViewController as? DetailViewController)!
// SubViewController のselectedImgに選択された画像を設定する
subVC.sendtext = selectedText
subVC.sendpicid = selectedItem
//ここでCallbackの為のupdateTableViewを設定
subVC.callBackAction = {self.updateTableView()}
}
else if(segue.identifier == "AddDetailView"){
let addDetailViewController = (segue.destinationViewController as? AddDetailViewController)!
addDetailViewController.callBackAction = { self.updateTableView() }
}
}
//ボタンにて遷移する場合
@IBAction func goDetailButton(sender: AnyObject) {
let detailViewController = self.storyboard?.instantiateViewControllerWithIdentifier("showDetailView") as! DetailViewController
detailViewController.callBackAction = { self.updateTableView() }
self.presentViewController(detailViewController, animated: true, completion: nil)
}
//省略・・・・・・・・・
}
//遷移先処理データ編集処理(データベースの更新あり)
class DetailViewController: UIViewController {
var callBackAction: (() -> Void)?
//戻るボタンのAction設定
@IBAction func retTopButton(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: {
self.callBackAction?()
})
}
}
//遷移先データ追加処理(データベースの追加登録あり)
class AddnoteViewController: UIViewController {
var postDismissionAction: (() -> Void)?
@IBAction func retTopButton(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: {
self.callBckAction?()
})
}
//省略・・・・・・・・・
}