【问题标题】:Add tableview in AlertController dynamically in swift , how?在 swift 中动态添加 AlertController 中的 tableview,如何?
【发布时间】:2023-04-02 13:28:01
【问题描述】:

我需要在UIAlertView 中显示UITableView 之类的项目。我怎样才能做到这一点?? 或者如果我的问题错了,请推荐我极客?

我的屏幕应该是这样的

提前致谢。

**编辑画面**

【问题讨论】:

  • 你应该创建一个新的视图控制器,父视图有一个半透明的背景和一个子视图,如上,使用addchildviewcontroller显示它
  • 如果您有任何样品或链接,请发送@PhuDuy
  • 这和你创建一个视图控制器一样,但是你会在当前视图控制器上方显示它

标签: swift uitableview uialertcontroller


【解决方案1】:

创建一个新的UIViewController,并在呈现之前将modalPresentationStyle 属性设置为UIModalPresentationOverCurrentContextUIViewController 的视图必须将 clear color 设置为背景色,并由具有 alpha 0.5 的 UIImageView 覆盖并具有灰色。这将创建半透明效果,然后添加您需要的其他 UI 元素(表格视图、按钮等)。

假设您有 CustomViewController 用于显示上述内容。您将使用以下语句来呈现它:

let customVC = CustomViewController()
customVC.modalPresentationStyle = .OverCurrentContext
presentViewController(customVC, animated: false, completion: nil)

在此之前,请按以下方式自定义CustomViewController

  • CustomViewController 视图必须将背景颜色设置为clear color

  • 覆盖CustomViewController 视图的图像视图,将其设置为alpha = 0.5,并将background 颜色设置为深灰色。

  • 一个内容视图(您可以在其中放置表格视图和您需要的其他 UI 组件)

因此,您将拥有此视图层次结构:

【讨论】:

  • 当将此视图设置为初始视图控制器时,它会显示确切的视图,但是当我使用上面的代码单击任何按钮时,它会显示黑屏,为什么??
  • 我在我的代码中编辑了我的屏幕。请检查那里的 ModalAddonVC
  • 在 viewDidLoad 中它的调用就像.. NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.ShowAddOn(_:)), name: "ShowAddOn", object: nil)
  • 我已经尝试过创建 segue.. 它的工作但在后台我们无法根据屏幕看到以前的屏幕数据
【解决方案2】:

理想情况下,您必须创建另一个带有表格视图的 UIViewController 并使用 modalPresentationStyle 显示覆盖,正如@Azimov 所说。

或者在你的 UIViewController 之外创建 UITableView 并将其添加为子视图。

如果你还想在警报视图中添加,那么你可以像下面那样做。

var alertView: UIAlertView!

alertView = UIAlertView(title: "", message:nil , delegate: nil, cancelButtonTitle:nil )

// Here you have to draft whole code for table view
// var newTableview: UITableView!
// Then you can add it on alert view by using accessoryView

alertView.setValue(newTableview, forKey: "accessoryView")

【讨论】:

  • 嘿 .. 如果我需要使用您的第二个选项,我可以在其中设置“forKey”,就像您设置的“accessoryView”
  • 只需传递您的表视图对象名称,如 alertView.setValue(newTableview, forKey: "accessoryView") , forKey: "accessoryView") 这是修复这里没有任何改变。
  • 我收到错误...由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:此类不符合键值编码关键附件视图。'
  • 这个类不符合键附件视图的键值编码。'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多