- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 XCode 7.0 并正在学习 iTunesU 类(class),Stanford CS193p。该程序“Smashtag”旨在显示与搜索相关的推文。我试图自己添加一个功能来点击一条推文,它将在不同的 View Controller 中显示。 tableviewcell 类有一个变量:
var tweet: Tweet?
tweet 类有一个用户,其中包含屏幕名称和名称,以及可选的个人资料图像的 url。在我的 TableView Controller 中,我在单击一个单元格后创建了一个 segue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let vc = segue.destinationViewController as? ViewController{
if let identifier = segue.identifier{
if identifier == "showTweet"{
if let selectedTweet = sender as? TweetTableViewCell{
vc.tweetToDisplay = selectedTweet.tweet!
}
}
}
}
然后在我的另一个 View Controller 中,我有一个不同的线程:
self.profileImage.image = UIImage(data: imageData)
self.tweetMedia.image = UIImage(data: mediaData)
self.userName.text = "\(tweetToDisplay.user.name)"
self.userScreenName.text = "\(tweetToDisplay.user.screenName)"
if let body = tweetToDisplay.text{
self.tweetBody.text = body
}
userName、userScreenName、profileImage 和 tweetMedia 都加载到 View Controller 上;但是,tweetBody 给出了标题中的错误并使程序崩溃。我已经尝试使用 tweetBody 进行可选链接;但是,tweetBody 不会显示。感谢您的帮助。
最佳答案
我已经为这个问题苦苦挣扎了几个小时。对我有用的是将 View Controller 之间的数据交换存储在单独的变量中。以下是对我有用的解决方案。希望对您有所帮助。
而不是 -
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let vc = segue.destinationViewController as? ViewController{
if let identifier = segue.identifier{
if identifier == "showTweet"{
if let selectedTweet = sender as? TweetTableViewCell{
vc.tweetToDisplay = selectedTweet.tweet!
}
}
}
}
尝试 -
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let vc = segue.destinationViewController as? ViewController{
if let identifier = segue.identifier{
if identifier == "showTweet"{
if let selectedTweet = sender as? TweetTableViewCell{
guard let tweetText = selectedTweet.tweet! else {
return
}
vc.tweetToDisplayText = tweetText
}
}
}
}
在您的其他 View Controller 中声明一个字符串变量 -
var tweetToDisplayText:String?
最后在viewDidLoad:
方法中添加-
tweetToDisplay.text = tweetToDisplayText
关于ios - 在条件解包后解包可选时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775306/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!