首页 > 分享 > iOS学习

iOS学习

1.) click item navigation to adding view controller before 

adding a new segue ( table view cell -> Detail View controller) named : EditTodo


screen:


code: 

//
//  DetailViewController.swift
//  Todo
//
//  Created by Ricky Choi on 16/6/3.
//  Copyright © 2016年 worm. All rights reserved.
//

import UIKit

class DetailViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var childButton: UIButton!
    @IBOutlet weak var phoneButton: UIButton!
    @IBOutlet weak var shoppingCartButton: UIButton!
    @IBOutlet weak var travelButton: UIButton!

         @IBOutlet weak var todoItem: UITextField!
    @IBOutlet weak var todoDate: UIDatePicker!

         var todo: TodoModel?

              override func viewDidLoad() {
        super.viewDidLoad()

                 todoItem.delegate = self
        // Do any additional setup after loading the view.

                 if todo == nil {
            childButton.selected = true
            navigationItem.title = "新增Todo"
        }
        else {
            navigationItem.title = "修改Todo"
            if todo?.image == "child-selected" {
                childButton.selected = true
            }
            else if todo?.image == "shopping-cart-selected" {
                shoppingCartButton.selected = true
            }
            else if todo?.image == "phone-selected" {
                phoneButton.selected = true
            }
            else if todo?.image == "travel-selected" {
                travelButton.selected = true
            }

                         todoItem.text = todo?.title
            todoDate.setDate((todo?.date)!, animated: false)
        }

             }

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

         func resetButtons() {

                 childButton.selected = false
        phoneButton.selected = false
        shoppingCartButton.selected = false
        travelButton.selected = false
    }

         @IBAction func childTapped(sender: AnyObject) {
        resetButtons()
        childButton.selected = true
    }

    @IBAction func phoneTapped(sender: AnyObject) {
        resetButtons()
        phoneButton.selected = true
    }

         @IBAction func shoppingCartTapped(sender: AnyObject) {
        resetButtons()
        shoppingCartButton.selected = true
    }

      @IBAction func TravelTapped(sender: AnyObject) {
        resetButtons()
        travelButton.selected = true
    }


    @IBAction func okTapped(sender: AnyObject) {
        var image = ""
        if childButton.selected {
            image = "child-selected"
        }
        else if phoneButton.selected {
            image = "phone-selected"
        }
        else if shoppingCartButton.selected {
            image = "shopping-cart-selected"
        }
        else if travelButton.selected {
            image = "travel-selected"
        }

                 if todo == nil {


            //let uuid = NSUUID.UUID().UUIDString
            let uuid = NSUUID().UUIDString
            var todo = TodoModel(id: uuid, image: image, title: todoItem.text!, date: todoDate.date)

                     todos.append(todo)
        }
        else {


            todo?.image = image
            todo?.title = todoItem.text!
            todo?.date = todoDate.date
        }

             }

         //Implement UITextfieldDelegae to close keyboard
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

         //click parent container to close keyboard
    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
        todoItem.resignFirstResponder()
    }

              /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}

ViewController.swift

//
//  ViewController.swift
//  Todo
//
//  Created by Ricky Choi on 16/6/1.
//  Copyright © 2016年 worm. All rights reserved.
//

import UIKit

var todos: [TodoModel] = []

func dateFromString(dateStr: String) -> NSDate? {
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyy-MM-dd"
    let date = dateFormatter.dateFromString(dateStr)
    return date
}

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

         @IBOutlet weak var tableView: UITableView!

         override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        todos = [TodoModel(id: "1", image: "child-selected", title: "1. 去游乐场", date: dateFromString("2014-11-2")!),
        TodoModel(id: "2", image: "shopping-cart-selected", title: "2. 购物", date: dateFromString("2014-10-28")!),
        TodoModel(id: "3", image: "phone-selected", title: "3. 打电话", date: dateFromString("2014-10-30")!),
        TodoModel(id: "4", image: "travel-selected", title: "4. Travel to Europe", date: dateFromString("2014-10-31")!),
        ]

                 navigationItem.leftBarButtonItem = editButtonItem()
    }

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

    //Implement UITableviewDataSource
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        //return 50
        return todos.count
    }

         func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = self.tableView.dequeueReusableCellWithIdentifier("todoCell")! as UITableViewCell

                 var todo = todos[indexPath.row] as TodoModel

                 //get control from tag
        var image = cell.viewWithTag(101) as! UIImageView
        var title = cell.viewWithTag(102) as! UILabel
        var date = cell.viewWithTag(103) as! UILabel

                 image.image = UIImage(named: todo.image)
        title.text = todo.title

                 let locale = NSLocale.currentLocale()
        let dateFormat = NSDateFormatter.dateFormatFromTemplate("yyyy-MM-dd", options: 0, locale: locale)
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = dateFormat
        date.text = dateFormatter.stringFromDate(todo.date)

                      return cell
    }

              //Implement UITableviewDelegate

         func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if editingStyle == UITableViewCellEditingStyle.Delete {
            todos.removeAtIndex(indexPath.row)
            //self.tableView.reloadData()
            self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)

                     }
    }

              //Edit Mode in navigation bar
    override func setEditing(editing: Bool, animated: Bool) {
        super.setEditing(editing , animated: animated)
        self.tableView.setEditing(editing, animated: animated)
    }

         @IBAction func close(segue: UIStoryboardSegue) {
        print("closed")
        tableView.reloadData()
    }

         override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "EditTodo" {
            var vc = segue.destinationViewController as! DetailViewController
            var indexPath = tableView.indexPathForSelectedRow
            if let index = indexPath {
                vc.todo = todos[index.row]
            }
        }

             }


}

相关知识

IOS学习笔记(六)之UISlider的概念和使用方法
花帮主ios版下载
花卉识别ios版下载
区块链原生工程师(iOS、Android)(长沙)
花集网ios版下载
支付宝手机支付接口(android,ios),包含客户端和服务器端接口
花百科iOS版app下载
暑假不宅抓紧表白 iOS约会应用推荐
花萝卜ios官方版app下载
苹果发布 iOS 18.2 正式版,带来超多新功能!

网址: iOS学习 https://m.huajiangbk.com/newsview1306291.html

所属分类:花卉
上一篇: 嘟嘟直播iPhone版免费下载
下一篇: iOS复习记录日记13