我有一个供稿,其中显示了想要发布内容的用户的帖子。我想做的是显示在按钮上发布内容的用户的名称(正在运行)。然后,当用户按下该按钮时,它应该显示另一个视图控制器,并带有该用户按下的按钮的名称(这是半工作的)。

现在发生的是,当用户按下帖子中的另一个用户的名称时,另一个视图控制器中显示的名称并不总是与该用户按下的名称相同。

我希望你明白 :-)

让我向您介绍我的代码:

第一个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/

10-11 14:57