我有一个供稿,其中显示了想要发布内容的用户的帖子。我想做的是显示在按钮上发布内容的用户的名称(正在运行)。然后,当用户按下该按钮时,它应该显示另一个视图控制器,并带有该用户按下的按钮的名称(这是半工作的)。
现在发生的是,当用户按下帖子中的另一个用户的名称时,另一个视图控制器中显示的名称并不总是与该用户按下的名称相同。
我希望你明白 :-)
让我向您介绍我的代码:
第一个viewController
在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
}
}
按钮的标题已更改为Feed中应有的标题,但是sendName一定有问题,因为它在另一个viewController上并不总是显示与buttonTitle相同的名称。
希望你能理解,否则请告诉我:-)
最佳答案
在我看来,您在哪里更新sendName
变量是问题所在。每当要显示新的单元格或重绘表格时,都会调用cellForRowAtIndexPath
。
我不知道您的应用程序是如何工作的,但是如果您可以同时在屏幕上显示多个帖子,那么这意味着sendName
变量仅在您按下最底部的按钮时才是正确的发布。
如果您按下其他帖子的按钮,那么您仍会获得最底部帖子的名称。
我建议使用单击按钮更改sendName
变量时触发的IBAction。然后,您可以手动启动segue。
关于ios - 点击Feed中的个人资料- swift ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39638873/