【发布时间】:2016-12-28 18:50:04
【问题描述】:
iOS/Swift 新手。我正在尝试将一个项目(只是通过 NSData init() 方法从 URL 获取内容)从 Swift 2 迁移到 Swift 3,我遇到了几个问题:
-
我在 ViewController 中有一个
prepareForSegue。 segue 本身工作正常,但是我无法从源控制器的UILabel中提取文本并将其发送到目标控制器。出于某种原因,目标 VCUIlabel仍显示默认值。 转义代码:if let identifier = segue.identifier{ if identifier == "showUserDetailSegue"{ if let detailsViewController = segue.destination as? DetailsViewController, let cell = sender as? UserInfoTableViewCell, let text = cell.textLabel?.text{ detailsViewController.text = text } } }
detailsViewController.text 是一个使用didSet 属性的公共变量。
目标VC代码:
var text: String?{
didSet{
updateUI()
}
}
private func updateUI(){
self.detailsTextView.text = text
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var detailsTextView: UILabel!
2.我的一个GET 请求 URL 之间有一些空格。例如,如果我们采用一个示例 URL,例如:http://www.omdbapi.com/?t=Game%20of%20Thrones&Season=1,对此的异步调用会不断失败,并显示“URL 无效”。我们是否应该对此运行某种编码?
非常感谢任何提示和提示。
谢谢。
【问题讨论】:
-
您有任何代码可以更改标签的文本吗?
-
是的,我会用destinationVC更新问题
-
添加调试语句,里面的复杂
if let是否达到了? -
你有没有想过这个?