gpt4 book ai didi

ios - TableView 加载数据后将表滚动到索引

转载 作者:行者123 更新时间:2023-11-30 11:58:00 25 4
gpt4 key购买 nike

我有一个 tabBar Controller ,在分段 0 中我有一个 View Controller ,它有另一个 View Controller ,也有一个 TableView 。当在单元格中点击时,我必须从segmentedIndex 1中的viewcontroller更改为selecteIndex 0,如下所示

let appDelgate = UIApplication.shared.delegate as! AppDelegate
// FIXME: - Update to real post id comming from Notification endpoint
appDelgate.postID = 81

self.tabBarController?.selectedIndex = 0

81仅用于测试目的然后在管理 selectedIndex 0 的 View Controller 中我已经在 viewDidAppear 中设置了这个

override func viewDidAppear(_ animated: Bool){
let appDelegate = UIApplication.shared.delegate as! AppDelegate
if let postID = appDelegate.postID, let data = feedFriends.feedVC.theData {
self.pagerVC.selectedIndex = 0
let i = data.index(where: { data in
data.id == postID
})
print("i value: \(i)")
let indexPath = IndexPath.init(row: i!, section: 0)
feedFriends.feedVC.tableView.scrollToRow(at: indexPath , at: .top, animated: true)
appDelegate.postID = nil
print("el valor de post id \(String(describing: appDelegate.postID))")
}
}

如果此 View 在之前的代码中进行转换之前出现,那么所有这些都会按预期工作。我是否点击选定的索引 1 并点击一个单元格以显示 selectedIndex 0,但这不会显示,那么滚动不会发生,以防万一进行此检查 let data = feedFriends.feedVC.theData未完成,我意外地发现了 nil,因为由于异步任务,theData 未从网络加载,所以当数据加载完成以滚动到所需索引时我该怎么做。我见过这个Auto scrolling to a cell with a specific value但我已经解决了滚动到指定值的问题。所以我的问题是如何知道在 tableview 加载数据后何时滚动,因为 tableview 没有委托(delegate)来通知所有数据已加载,因此 tableview 将重新加载数据,与链接的区别在于当表格 View 已经有数据时,但如果所有 View 尚未从 Storyboard加载,我会滚动到所需的单元格。

what function or protocol or delegate use to say the tableview hey ahve you loaded your data, then tableview.scrolltorow().

最佳答案

让您在其 viewDidAppear 中编写上述代码的 View Controller 充当 feedFriends.feedVC 的委托(delegate),方法是遵守一个协议(protocol),该协议(protocol)具有告诉委托(delegate)的函数: feedFriends.feedVC.theData 可用。在该方法中,将表格 View 滚动到所需的单元格。

关于ios - TableView 加载数据后将表滚动到索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47583410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com