Parse platform 向viewcontroller发送数据时显示零数据
由于某些原因,我无法获取要发送到AddParticipant视图的值 以下是ValuetoPass之前和segue:LAbelText之后的数据 ValuetoPass=GXEuoAkhjP 标签文本= segue的TableView代码:Parse platform 向viewcontroller发送数据时显示零数据,parse-platform,swift2,Parse Platform,Swift2,由于某些原因,我无法获取要发送到AddParticipant视图的值 以下是ValuetoPass之前和segue:LAbelText之后的数据 ValuetoPass=GXEuoAkhjP 标签文本= segue的TableView代码: override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { //CODE TO BE
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//CODE TO BE RUN ON CELL TOUCH
let indexPath = tableView.indexPathForSelectedRow!;
let currentCell = tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell!;
let valueToPass = self.participantId[indexPath.row] as String
print("ValuetoPass = ",valueToPass)
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "editParticipant") {
let viewController = segue.destinationViewController as! AddViewController
viewController.LabelText = valueToPass; }
}
}
AddViewController的代码:
@IBOutlet weak var firstnameTF: UITextField!
@IBOutlet weak var lastnameTF: UITextField!
@IBOutlet weak var gradeTF: UITextField!
@IBOutlet weak var teacherTF: UITextField!
@IBOutlet weak var emailTF: UITextField!
@IBOutlet weak var phoneTF: UITextField!
@IBOutlet weak var transportationTF: UITextField!
@IBOutlet weak var userSchoolTF: UITextField!
var LabelText = String()
@IBOutlet weak var qrCode: UIImageView!
@IBOutlet weak var userPicture: UIImageView!
override func viewDidAppear(animated: Bool) {
}
override func viewDidLoad() {
super.viewDidLoad()
print("LabelText = ", LabelText)
let currentUser = PFUser.currentUser()
currentUser!.refreshInBackgroundWithBlock { (object, error) -> Void in
// print("Refreshed")
currentUser!.fetchIfNeededInBackgroundWithBlock { (result, error) -> Void in
self.userSchoolTF.text = currentUser!.objectForKey("school") as? String
}
}
因此,在发送数据之前,我已经有了数据,但在序列之后显示为nil?Swift是否有NSString对象?还是字符串是一样的东西 在目标c中,分配给对象指针就是创建对前一个对象的引用。当您使其变弱时,它不会添加到引用计数,因此如果您取消分配原始指针,则会同时取消分配这两个指针。Strong意味着它确实增加了引用计数,因此取消分配第一个对象实际上不会取消分配对象 如果String和NSString是两个不同的东西,请尝试将您的类型改为NSString,并查看它是否被保留
我在Obj-C工作,不是Swift,我不确定两者之间的细微差别。我想你在故事板中创建了segue,对吗? 将prepareForSegue函数从tableView函数中删除。此外,prepareForSegue应覆盖。尝试使用下面的代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if( segue.identifier == "editParticipant" ){
if let destinationVC = segue.destinationViewController as? AddViewController {
destinationVC.LabelText = valueToPass
}
}
}
它们是桥接的,所以您可以在它们之间强制转换更改为您所拥有的,是否因为字符串被nil替换而出现错误var LabelText=String?现在我的LabelText显示为nilIt刚刚开始工作,我知道我应该覆盖它。谢谢ZassX