我在访问从tableViewController
发送到viewController
的数据时遇到问题。
第一个文件tableView Controller使用以下命令查找所选行并通过segue传递数据:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// Get the row data for the selected row
var name = self.names[indexPath.row]
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let selectedIndex = self.tableView.indexPathForCell(sender as UITableViewCell)
if segue.identifier == "PictureSegue"{
let vc = segue.destinationViewController as pictureViewController
vc.recvData = name
}
}
}
第二个文件(viewController)正在尝试读取数据并打开警报。警报一直无效。为什么没有收到数据?
class pictureViewController: UIViewController {
var recvData:String!
override func viewDidLoad() {
super.viewDidLoad()
if recvData != nil
{
if (recvData == "Apapne")
{
var alert: UIAlertView = UIAlertView()
alert.title = recvData
alert.message = recvData
alert.addButtonWithTitle("Ok")
alert.show()
}
}
else
{
var alert: UIAlertView = UIAlertView()
alert.title = "no"
alert.message = "stuff"
alert.addButtonWithTitle("Ok")
alert.show()
}
}
}
谢谢
答案 0 :(得分:2)
请勿在{{1}}中访问该媒体资源 - 此时无法设置该资产。在viewDidLoad
答案 1 :(得分:2)
问题是prepareForSegue方法。你必须覆盖它。在你的情况下,你只是在tableView didSelectRowAtIndexPath方法中定义一个名为prepareForSegue的函数,但你应该插入一个覆盖方法,而不是你的内部函数:
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject!) {
// do preparations
}