【发布时间】:2020-08-20 13:01:21
【问题描述】:
程序员朋友们好,
我正在构建一个应用程序,我想通过它向用户显示最近的商店。
但是,这需要在视图加载并显示后完成 TableView 设置 - 因此在用户授予位置权限之后。
可以这样做吗?如果是这样,我应该在哪里定义 TableView 协议函数,如“cellsForRowAt”和“numberOfRowsInSection”,因为这些参数只有在我获得 1) 获得该位置的许可和 2) 过滤最近的商店后才可用?
我希望问题很清楚,任何帮助将不胜感激。
【问题讨论】:
-
在用户授予您访问其位置的权限之前,您的数据源(用于表格)将包含零项。 tableView 可以很好地处理零项。当您被允许填充数据源时,只需重新加载表即可。
-
@Magnas 是对的。如果你只想加载你的表一次,那么只需在你的 didUpdateLocation 方法中分配你的 tableView 委托和数据源。因此,一旦您获得许可并且您的位置仅在这种情况下开始更新,您的表格视图将加载您的数据。我相信你能理解我的措辞。希望对你有帮助
-
谢谢,这两个答案都很有意义。我在哪里放置以下 "tableView.register(nib, forCellReuseIdentifier: "MainTableViewCell")" 、 "tableView.delegate = self" 和 "tableView.dataSource = self" 函数?我可以把它们放在 viewDidLoad 中吗?
-
@Lyndon2309 你可以调用这个方法是viewDidLoad()
-
@MohindraBhati 和 Magnas?
标签: ios swift xcode uitableview