我有錯誤:當我嘗試改變的tableView的背景在viewWillAppear
方法值類型「的UIView」的沒有成員「的tableView」
Value of type 'UIView' has no member 'tableView'
發生。
我預計表格視圖已經從viewDidLoad
方法初始化。
我應該在哪裏嘗試改變tableview的顏色?我是否也應該在同一個地方改變其他背景顏色?
class settingsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
override func viewDidLoad() {
super.viewDidLoad()
// Table view setup
let tableView = UITableView(frame: view.bounds, style: .Plain)
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(settingsCell.self, forCellReuseIdentifier: NSStringFromClass(settingsCell))
view.addSubview(tableView)
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true)
if nightMode == true {
view.backgroundColor = UIColor.blackColor()
view.tableView.backgroundColor = UIColor.blackColor() // Error here..
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return settings.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(NSStringFromClass(settingsCell), forIndexPath: indexPath) as! settingsCell
// Fetch setting
let cellSetting = settings[indexPath.row]
// Configure Cell
cell.textLabel?.text = cellSetting.name
return cell
}
}
有什麼目的,不要使用'UITableViewController'或至少一個實例變量? – vadian
你有你的tableView本地作用域。把它放在viewDidLoad之外的頂部。就目前而言,只有viewDidLoad「看到」它。請參閱Bhavin的答案 – Adrian
我主要是在做這個練習,在UIViewController中我需要手動做更多的事情。 http://stackoverflow.com/questions/14465447/are-there-any-advantages-to-using-a-uitableviewcontroller-over-a-uiviewcontrolle –