"cellForRowAtIndexPath" for a tableview inside alertviewcontroller not called 在 AlertViewController 内的 TableView 中 "cellForRowAtIndexPath" 方法未被调用。

6 浏览
0 Comments

"cellForRowAtIndexPath" for a tableview inside alertviewcontroller not called 在 AlertViewController 内的 TableView 中 "cellForRowAtIndexPath" 方法未被调用。

我在alertviewcontroller中添加了一个tableview,我为table指定了delegate和datasource。除了cellForRowAtIndexPath方法外,所有的delegate和datasource方法都被调用。我已经返回了一个固定的值作为每个section中的行数,以防止0行出现。然而,问题仍然存在。

0
0 Comments

在一个UIAlertController中,你不应该修改视图层次结构。你需要创建一个模仿警告控制器的自定义视图控制器,或者找到一个能为你完成这个工作的框架。

引用苹果文档的话:

这个类的视图层次结构是私有的,不能被修改。

在一个表格视图中,cellForRowAtIndexPath方法用于为每个单元格提供数据和样式,但在一个UIAlertController中,这个方法不会被调用。这是因为UIAlertController的视图层次结构是私有的,无法进行修改。

要解决这个问题,你可以考虑下面两种方法之一:

1. 创建一个自定义视图控制器,模仿警告控制器的外观和功能。这样你就可以在其中使用表格视图,并实现cellForRowAtIndexPath方法来为每个单元格提供数据和样式。

2. 寻找一个能为你完成这个工作的框架。有一些第三方框架可以帮助你创建自定义的警告控制器,其中包括表格视图和其他自定义视图。

无论哪种方法,你都需要遵循苹果文档中的建议,不要修改UIAlertController的视图层次结构。只有这样,cellForRowAtIndexPath方法才会被调用,并正确显示表格视图的内容。

0
0 Comments

UITableView inside UIAlertController is not designed to handle dynamic data and does not call the "cellForRowAtIndexPath" method.

To solve this issue, it is recommended to create a custom UIViewController and add the required functionality. This custom view controller can then be presented as a Form Sheet.

Here is an example of how to present a custom view controller as a Form Sheet:

// Create a custom view controller

let customViewController = CustomViewController()

// Set the presentation style to Form Sheet

customViewController.modalPresentationStyle = .formSheet

// Present the custom view controller

present(customViewController, animated: true, completion: nil)

By using a custom view controller, you have more control over the table view and can implement the "cellForRowAtIndexPath" method to handle dynamic data.

0