我有一个提要,其中显示想要发布内容的用户的帖子。我想做的是显示在按钮中发布内容的用户的名称(正在运行)。然后,当用户按下该按钮时,它应该显示另一个 View Controller ,其中包含用户按下的按钮的名称(即半工作)。
现在发生的情况是,当用户按下帖子中另一个用户的姓名时,另一个 View Controller 中显示的姓名并不总是与用户按下的姓名相同。
希望你能理解:-)
让我引导您完成我的代码:
第一个 View Controller 在 viewDidLoad 之前,我正在创建一个字符串:
var sendName = "No name recieved"
页面下方是以下代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:updateTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! updateTableViewCell
let update = updates[indexPath.row]
cell.nameButton.setTitle(update.addedByUser, forState: .Normal)
sendName = (cell.nameButton.titleLabel?.text)!
}
我的prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "showProfileFromFeed") {
let yourNextViewController = (segue.destinationViewController as! profileTableViewController)
yourNextViewController.viaSegue = sendName
}
}
按钮标题正在更改为提要中应有的内容,但 sendName 一定有问题,因为它并不总是在其他 viewController 上显示与 buttonTitle 所示相同的名称。
希望您能理解,否则请告诉我:-)
最佳答案
在我看来,更新 sendName
变量的位置就是问题所在。每当即将显示新单元格或重新绘制表格时,就会调用 cellForRowAtIndexPath
。
我不确切知道您的应用程序是如何工作的,但是如果您可以同时在屏幕上显示多个帖子,那么这意味着 sendName
变量只有在以下情况下才是正确的:按下最底部帖子的按钮。
如果您按下任何其他帖子的按钮,那么您仍然会获得最底部帖子的名称。
我建议使用单击按钮更改 sendName
变量时触发的 IBAction。然后您可以手动启动segue。
关于ios - 单击提要中的个人资料 - swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638873/