如何在 iPhone 的 UIAlertView 中添加 UITableView?

Posted

技术标签:

【中文标题】如何在 iPhone 的 UIAlertView 中添加 UITableView?【英文标题】:How to add a UITableView inside the UIAlertView in iPhone? 【发布时间】:2011-07-22 14:29:50 【问题描述】:

我想在警报视图中添加UITableView

我尝试将表格视图添加为警报视图的子视图,但它不起作用。你能给我一些代码或示例链接吗?

我该怎么做?

【问题讨论】:

【参考方案1】:

尝试以下任一页面:

http://zpasternack.blogspot.com/2010/10/stupid-uialertview-tricks-part-deux.html

https://github.com/blommegard/SBTableAlert

【讨论】:

2 个死链接和其他 2 个已移动。这就是为什么您应该在答案中添加代码,而不仅仅是链接。【参考方案2】:

它在我的情况下工作

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"click for submission \n\n\n\n "delegate:self  cancelButtonTitle:@"click for submission"
otherButtonTitles:nil];

    table = [[UITableView alloc]initWithFrame:CGRectMake(10, 40, 264, 120)];
    table.delegate = self;
    table.dataSource = self;
    [alert addSubview:table];

    [alert show];

    [table release];

    [alert release];        

【讨论】:

请不要忘记添加 UITableView 特定功能,如 cellForRowatIndexPath 等。这会导致 SIGABRT。 此代码不适用于 ios 7.. 如何在 iOS 7 中解决此问题 Apple 的文档明确禁止干预 UIAlertView 视图层次结构:"The view hierarchy for this class is private and must not be modified".【参考方案3】:

这真的是你想要的吗?

警报非常突兀,对用户来说非常令人担忧。警报是模态的,应谨慎使用。也许其中一个可能是更好的解决方案:

导航到带有表格视图中选项的新屏幕。像大多数“设置”应用一样。 使用 UISegmentedControl,例如在 WiFi 网络的设置中。 如果在 iPad 上,则在 UIPopoverController 中有选项。 改写选项,使 UISwitch 成为逻辑控件。

【讨论】:

【参考方案4】:

UIAlertView + UITableView 不如使用 UIActionSheet

【讨论】:

【参考方案5】:

您可以将 CAAlertView "https://github.com/chandanankush/CAAlertView" 用于 tableView 列表和 datePicker

【讨论】:

以上是关于如何在 iPhone 的 UIAlertView 中添加 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 应用程序的不同文件中为 UIAlertview 设置委托

如何让 UIAlertView 在 iPhone 应用程序第一次启动时只出现一次?

iPhone App 中的 UIAlertView 动态

iphone:UIAlertView 不会消失并阻止 UIProgressView

UIAlertView里面的UIView

如何更改 UIAlertView 按钮的宽度?