我有一个带有imageview,uitextview和按钮的控制器1。单击按钮时,会显示一个操作以向控制器显示表视图。我需要在表视图中配置这个图像视图和uitextview.text,但我不明白怎么做?
我试图访问
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
var header = tableView.dequeueReusableCellWithIdentifier("customHeader") as CustomHeaderCell
var controller = PreparePhotoViewController()
header.headerLabel.text = controller.textView.text//exc BAD ACCESS - textView is an outlet of controller, it is weak
header.headerPhoto.image = UIImage(named: "heart.png")
return header
}
但它有错误的ACCESS exc,因为我认为具有弱属性的uitextview是零。那么我有什么建议可以做我的想法吗?
答案 0 :(得分:1)
将属性添加到您要显示的视图控制器,例如:
var textToDisplay: String?
然后,在推送此新视图之前,请设置该属性,例如:
let viewController = [...]
viewController.textToDisplay = "Hello World"
self.presentViewController(viewController, animated: true, completion: nil)
然后,在推送的视图控制器的viewDidLoad
方法中,将UILabel
的{{1}}属性的值设置为新的text
值。
希望这是你想到的那种事情?
答案 1 :(得分:0)
我不确定您的方法,但我可以在您发布的代码中看到问题。您使用了错误的出队功能。
将tableView.dequeueReusableCellWithIdentifier
更改为tableView.dequeueReusableHeaderFooterViewWithIdentifier()
。
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
var header = tableView.dequeueReusableHeaderFooterViewWithIdentifier("customHeader") as CustomHeaderCell
...
return header
}
您可能希望使用更准确的名称CustomHeaderView
,而不是CustomHeaderCell
。