处理 UIActionSheet

Posted

技术标签:

【中文标题】处理 UIActionSheet【英文标题】:Handling UIActionSheet 【发布时间】:2014-10-31 06:45:17 【问题描述】:

在我的应用程序中,我应该有一个共同的 UINavigationBar 来保存 3 个 UIBarButton 项目及其操作。因此,我决定在 BaseViewController 上创建,而不是在每个 ViewControllers 中编写代码,它可以是我的应用程序 ViewControllers 的子类,

BaseViewController.h BaseViewController.m

之后,实现这个UINavigationBar 并显示其项目正常。在我的 BaseVC 中的一个条形按钮项目中,将显示 UIActionSheet,当从中选择某些内容时,需要将选定的索引从 BaseVC 获取到 MainVC。所以,我创建了一个自定义协议方法,将选定的操作表索引从 BaseVC 传递给我的 MainVC。

MainVC == FirstViewController

FirstViewController.h FirstViewController.m

这种情况也能奏效。但是,如果我在我的 FirstVC 中添加一个或多个 UIActionSheet,它就会被调用并且工作正常。但是,它禁用了 BaseVC 的 Actionsheet 委托调用。这意味着,它不允许在 BaseVC 上调用委托,

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;

BaseVC 中未触发上述委托。如何同时处理来自不同 VC 的 UIActionSheet

对此有什么想法吗?

【问题讨论】:

【参考方案1】:

在这种情况下,您必须使用 FirstViewController 方法调用中的逻辑手动调用它。当您知道该调用将由 BaseVC 处理时,您可以通过调用 [super actionSheet:actionSheet clickedButtonAtIndex:buttonIndex] 来执行此操作。

【讨论】:

以上是关于处理 UIActionSheet的主要内容,如果未能解决你的问题,请参考以下文章

自然语言处理_一般处理流程

怎么在批处理中加回车命令?

throws关键字_异常处理的第一种方式(交给别人处理)和try_catch_异常处理的第二种方式(自己处理)

PHP异常处理

协处理器,王明学learn

批处理学习笔记第一课:什么是批处理