此代码适用于具有表视图的视图控制器。我也对此感到困惑,因为我首先在教程中使用它,然后将其实现到我自己的项目中。
import UIKit
class BrowseView: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tblTasks: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Returning to view
override func viewWillAppear(animated: Bool) {
tblTasks.reloadData();
}
func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!){
if(editingStyle == UITableViewCellEditingStyle.Delete){
TaskMgr.tasks.removeAtIndex(indexPath.row)
tblTasks.reloadData()
}
}
//UiTableViewDataSource
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int{
return TaskMgr.tasks.count
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!{
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Value2, reuseIdentifier: nil)
cell.textLabel.text = TaskMgr.tasks[indexPath.row].name
cell.detailTextLabel.text = TaskMgr.tasks[indexPath.row].desc
return cell
}
}
这是第二个视图控制器,它有2个文本字段用于表视图的两个单元格的输入,以及一个按钮,可以将您带回到第一个具有表视图的视图控制器。
import UIKit
class CreateView: UIViewController, UITextFieldDelegate {
@IBOutlet var txtTask: UITextField!
@IBOutlet var txtDesc: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Events
@IBAction func btnAddTask_Click(sender: UIButton){
TaskMgr.addTask(txtTask.text,desc:txtDesc.text);
self.view.endEditing(true)
txtTask.text = ""
txtDesc.text = ""
}
//IOS touch functions
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
self.view.endEditing(true)
}
//UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField!) -> Bool{
textField.resignFirstResponder();
return true
}
}
这是任务管理器文件:
import UIKit
var TaskMgr: TaskManager = TaskManager()
struct task{
var name = "Un-Named"
var desc = "Un-Described"
}
class TaskManager: NSObject {
var tasks = [task]()
func addTask(name: String, desc: String){
tasks.append(task(name:name, desc:desc))
}
}
这又是本教程中使用的代码,它适用于我按照说明制作的项目,但它并不是我的。没有任何错误或任何性质,它只是没有显示输入的数据。此外,我使用按钮的模态功能将您传送到不同的视图控制器,我不确定这是否是正确/最佳方式,或者这是否干扰正在执行的代码。
我也是编程的初学者,如果你不能说,那么任何进一步的建议或提示都会在我的编程冒险中受到高度赞赏。
谢谢,Nate