Add Section About Extensions (#23428)
This commit is contained in:
committed by
Randell Dawson
parent
f00f46d2e5
commit
14c89f8f63
@ -20,4 +20,66 @@ This is an example of what a basic view in Swift looks like.
|
||||
```
|
||||
1. Loads view after the controller loads.
|
||||
2. Overrides the UIViewController class. This is a necessary step for any view controller.
|
||||
3. Sets background color to white.
|
||||
3. Sets background color to white.
|
||||
|
||||
## Extending View Controllers
|
||||
|
||||
Extensions can help keep your code clean when conforming to multiple protocols.
|
||||
|
||||
This is an example of how you can add a TableView to a Basic View Controller.
|
||||
|
||||
```Swift
|
||||
import UIKit
|
||||
|
||||
class ViewController: UIViewController {
|
||||
// 1
|
||||
@IBOutlet weak var tableView: UITableView!
|
||||
|
||||
// 2
|
||||
let data = ["New York, NY", "Los Angeles, CA", "Chicago, IL", "Houston, TX",
|
||||
"Philadelphia, PA", "Phoenix, AZ", "San Diego, CA", "San Antonio, TX",
|
||||
"Dallas, TX", "Detroit, MI", "San Jose, CA", "Indianapolis, IN",
|
||||
"Jacksonville, FL", "San Francisco, CA", "Columbus, OH", "Austin, TX",
|
||||
"Memphis, TN", "Baltimore, MD", "Charlotte, ND", "Fort Worth, TX"]
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
// 10
|
||||
tableView.dataSource = self
|
||||
// 11
|
||||
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "myCellIdentifier")
|
||||
}
|
||||
}
|
||||
|
||||
// 3
|
||||
extension ViewController: UITableViewDataSource {
|
||||
|
||||
// 4
|
||||
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||
// 5
|
||||
let cell = tableView.dequeueReusableCell(withIdentifier: "myCellIdentifier", for: indexPath)
|
||||
// 6
|
||||
cell.textLabel?.text = data[indexPath.row]
|
||||
// 7
|
||||
return cell
|
||||
}
|
||||
|
||||
// 8
|
||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||
// 9
|
||||
return data.count
|
||||
}
|
||||
}
|
||||
```
|
||||
1. Define the outlet for our tableView
|
||||
2. Define the data that we'll be loading into our tableView
|
||||
3. Adds extension to ViewController class that conforms to UITableViewDataSource
|
||||
4. Implement the UITableViewDataSource stubs for required methods - cellForRowAt (defines what goes in a specific cell)
|
||||
5. Define a cell as a resuable element with the identifier "myCellIdentifier"
|
||||
6. Provide our cell's textLabel with the referenced data
|
||||
7. Return that cell
|
||||
8. Implement the UITableViewDataSource stubs for required methods - numberOfRowsInSection (defines how many rows will be in your tableView)
|
||||
9. Return the size of our data array
|
||||
10. Set the tableView's dataSource to self when the view loads
|
||||
11. register the tableView's cell
|
||||
|
Reference in New Issue
Block a user