ios - 单击提要中的个人资料 - swift

标签 ios swift uitableview segue

我有一个提要,其中显示想要发布内容的用户的帖子。我想做的是显示在按钮中发布内容的用户的名称(正在运行)。然后,当用户按下该按钮时,它应该显示另一个 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/

相关文章:

swift - 删除在 UITableViewController 中不起作用的行

iphone - GMSGroundOverlay 有哪些限制?

ios - UITableView 当单元格滚动到顶部时,单元格将固定在顶部

ios - 如何将unix时间戳转换为NSData对象?

ios - 如何比较两个 Struct 对象?

ios - pageCurl 动画与触摸交互

ios - 暂时禁用 PageViewController 上的滑动

ios - 如何在ios中知道设备连接到哪个网络主机

iOS Swift3 使用键盘移动 Textfield 和 ContainerView

ios - 滚动时图像无法正确显示 iOS Swift