将 ActionSheet 按钮链接到 TableView

Posted

技术标签:

【中文标题】将 ActionSheet 按钮链接到 TableView【英文标题】:Link ActionSheet button to TableView 【发布时间】:2013-09-30 18:48:28 【问题描述】:

我有一个在视图控制器上弹出的操作表。该操作表有 3 个按钮,“选择现有图标”、“拍照”和“取消”。

我的“拍照”按钮工作得很好。但是,我希望“选择现有图标”按钮链接到一个 UITableViewController,它有一个预制图标列表,我将使用这些图标作为应用程序的种子。如何将按钮链接到图标表?

我在 clickedAtButtonIndex 方法中试过这个,

NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex];
if ([buttonTitle isEqualToString:@"Choose Existing Icon"])

    IconViewController *iconPicker = [[IconViewController alloc] init];
    [self presentViewController:iconPicker animated:YES completion:nil];

但这会崩溃。我希望它让用户看到一个图标表并选择一个。然后让该图标显示在原始控制器的 UIImageView 中。

感谢您的帮助

编辑

我将更改为 buttonIndex,感谢您的提示。我遵循了一个教程,并没有考虑太多。

当我在此处运行代码时,点击“选择现有图标”按钮时出现此错误。

2013-10-01 13:06:18.680 CardMinder[594:60b] * -[UITableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit/UIKit-2903.2/UITableView.m:6235 中的断言失败 2013-10-01 13:06:18.684 CardMinder[594:60b] * 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“UITableView 数据源必须从 tableView:cellForRowAtIndexPath: 返回一个单元格:”

【问题讨论】:

为什么不使用索引? if(buttonIndex == 0) // 选择现有的等 我在这里看不到崩溃,你能发布堆栈跟踪和实际异常吗?我敢打赌,您在表格视图中做错了什么,并且根本没有链接到操作表。 Injectios 是正确的,你真的应该使用按钮索引。现在你必须在两个地方都有字符串,这意味着当你决定更改副本时,你需要记住更改它,否则你会创建一个错误。 我已更改为 buttonIndex 并发布了我得到的错误。如果您需要发布任何其他内容,请询问。 【参考方案1】:

在uiactionsheet中有一个类似uialertview的按键触摸调用函数的方法

http://blog.mugunthkumar.com/coding/ios-code-block-based-uialertview-and-uiactionsheet/ .....阅读此博客

【讨论】:

你会不会碰巧知道那个方法是什么?我好像没找到。 -(void) actionsheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex //如果你有更多按钮,你需要将 0 更改为其他值(,1,2,3)。然后你可以检查按下了哪个按钮。 if (buttonIndex == 0) [self submitData];

以上是关于将 ActionSheet 按钮链接到 TableView的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI ActionSheet 禁用按钮

iOS Popover 或 ActionSheet 导致 UISegmentedControl 按钮变灰

如何使用 JavaScript 在 UI 自动化中访问 actionSheet(及其按钮)?

SwiftUI:如何在单击 ActionSheet 按钮时呈现新视图?

当 iPad 旋转时,ActionSheet 的 PopoverController 不会停留在窗口的中心

使用操作表按钮传递值