Swift2 swift 2中的委托错误
我在运行应用程序后传递数据时遇到问题。我正在尝试在选择表视图单元格后更改上一个视图控制器的标签 有人能帮我去那里吗 视图控制器 和tableview控制器 导入UIKit 协议SendbackDelegate:类{ func sendNameToPreviousVC(城市:字符串) } 错误为lineSwift2 swift 2中的委托错误,swift2,Swift2,我在运行应用程序后传递数据时遇到问题。我正在尝试在选择表视图单元格后更改上一个视图控制器的标签 有人能帮我去那里吗 视图控制器 和tableview控制器 导入UIKit 协议SendbackDelegate:类{ func sendNameToPreviousVC(城市:字符串) } 错误为lineVCOne.delegate=self error=类型“AircraftSearch”的值没有成员“delegate”该行可能是 self.delegate = VCOne 由于self是Sel
VCOne.delegate=self
error=
类型“AircraftSearch”的值没有成员“delegate”
该行可能是
self.delegate = VCOne
由于
self
是SelectedCity
,具有delegate
属性,VCOne
类型为AircraftSearch
,因此是SendbackDelegate
请不要改变你的问题的核心,而是考虑接受我对你最初所遇到的一个问题的答案!然后谷歌搜索你的新问题,因为已经有很多解决方案了。如果你最终无法自己解决问题,请回来问post一个新问题。@luk2302强迫OP接受你的答案也不酷。@trojanfoe它显然回答了他的问题,不是吗?由于他的程序编译、运行和抛出不同的错误,正确的响应应该是什么?(我把它改了一点,因为它以前听起来的样子)是的,你是对的,但它仍然不酷。@trojanfoe好的,我不应该包括关于接受我的答案的部分,对吗?其余的还好吗?@不,那是另一个问题。请试着自己想出一个解决办法。我还原了您的编辑以反映上一个问题。当我更改self.delegate=VCOne时。此行致命错误:labelcity!。文本=SelectCity@Shadow您可能没有正确连接该UILabelNo的IBOutlet连接,它是正确的连接,当print(选择City)返回时data@Shadow问题不在于SelectCity
,而在于labelcity
似乎是nil
-为什么会有代码>无论如何?在您在问题中发布的代码中,它被定义为UILabel代码>,因此您不需要在稍后的过程中将其展开。
class SelectedCity: UITableViewController {
var toTake = [String]()
var selecteCity = String()
weak var delegate: SendbackDelegate? = nil
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return toTake.count ?? 0
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("stcell", forIndexPath: indexPath) as? mAndMCell
let nameCity = toTake[indexPath.row]
print(nameCity)
cell!.nameCityLabel.text = nameCity
return cell!
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRowAtIndexPath(indexPath) as! mAndMCell!
selecteCity = currentCell.nameCityLabel!.text as String!
sendBackIdCity(selecteCity)
navigationController?.popViewControllerAnimated(true)
}
func sendBackIdCity(name: String){
self.delegate?.sendNameToPreviousVC(name)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "backCitySegue"{
var VCOne = segue.destinationViewController as? AircraftSearch
VCOne.delegate = self
}
}
}
self.delegate = VCOne