Click here for the code! // Link goes to GitHub.
What I wanted to accomplish
- Make the
UITextField
work - Make the button work
- Populate the table view
Things I accomplished:
- Ability to type in a task (number 1 above)
- Add task to the todo list (number 2 above)
- Dismiss the keyboard after adding a todo with the button.(number 1 & 2)
- The keyboard does not dismiss if using the Done key
- Populate the table view (number 3 above)
Things I learned
Creating a separate class for a todo list made things a little bit more difficult.
struct Todo {
var task: String
var complete:Bool = false
}
class TodoList {
private var todoList = [Todo]()
func addTodo(todo: String) {
let newTodo = Todo(task: todo, complete: false)
todoList.append(newTodo)
}
func returnList() -> Array<Todo> {
return todoList
}
func count() -> Int {
return todoList.count
}
func getTodo(index: Int) -> Todo {
return todoList[index]
}
}
For example, if I needed to grab a Todo at a specific index, I had to write my own function for it. This is also the same for getting the number of todos in the todo list.
I used the class and structs to help with organization and to also keep my data out of my ViewController.swift
file.
Linking a table to a view controller
Something I had trouble on was linking the table view to the view controller. I found some online tutorials to help me, but none explained how to connect the two. I will explain it right now.
While holding option, click and drag from the table view, to ViewController.swift
inside the ViewController
class to make an IBOutlet
.
Here is what my line of code looks like:
@IBOutlet weak var todoTable: UITableView!
If you have any questions about what I did or how I implemented anything, let me know! If you have any suggestions or other comments, let me know as well!
Top comments (0)