`

UIActionSheet和其他模态窗冲突的问题

 
阅读更多

虽然iOS8引进了UIActionController,但是由于目前还需要兼容iOS7版本,所以还不能完全放弃UIActionSheet

我们有一个界面用到了自定义的模态对话框。当用户点击某个按钮时,会弹出ActionSheet,然后选择ActionSheet的一项,会弹出一个模态的对话框。基本的思路是用一个透明的view直接add到UIWindow上,类似:

-(void) show
{
    [[UIApplication sharedApplication].keyWindow addSubview:self];
    timer = [NSTimer scheduledTimerWithTimeInterval:fadeDelay target:self selector:@selector(fade) userInfo:nil repeats:NO];
}

-(void) fade
{
    [self removeFromSuperview];
    [timer invalidate];
}

但是测试发现,当ActionSheet自动dismiss的时候,会附带把模态对话框也关闭了,解决的方法是,不使用keyWindow属性,而是使用以下的代码:

[[[[UIApplication sharedApplication] windows] firstObject] addSubview:self];// 如果使用keyWindow,此模态框会跟UIActionSheet冲突


分享到:
评论

相关推荐

    UIActionSheet

    在这个例子中,"操作选择"是UIActionSheet的标题,"取消"是取消按钮的标题,"操作1"和"操作2"是其他可供用户选择的操作。 UIActionSheet的代理是遵循UIActionSheetDelegate协议的对象,它负责处理用户的选择。当...

    UIActionSheet示例代码

    在这个例子中,我们创建了一个`UIActionSheet`,设置了标题、取消按钮、破坏性按钮和其他按钮,然后在视图上显示。当用户点击按钮时,`actionSheet:clickedButtonAtIndex:`方法会被调用,根据按钮索引执行相应的操作...

    UIPickerView+UIActionSheet

    而`UIActionSheet`则是一种模态视图,用于在多个操作选项中提供用户一个简洁的选择界面,常见于底部弹出的菜单。 标题“UIPickerView+UIActionSheet”表明我们要讨论的是如何将这两个组件结合使用,创建一个类似于...

    ios的提示信息UIActionSheet和UIAlertView

    在iOS开发中,UIActionSheet和UIAlertView是两种用于向用户展示提示信息的重要控件。它们在用户交互过程中起到了至关重要的作用,特别是在需要用户做出选择或确认操作时。然而,随着iOS版本的更新,这两种控件逐渐被...

    ios应用源码之仿uialertview和uiactionsheet的一个效果 2018127

    2. **布局管理**:使用AutoLayout或Size Classes来处理不同屏幕尺寸下的布局问题,确保在iPhone和iPad上都能正确显示。 3. **视图层次结构**:构建视图层次结构,包括背景模糊效果、内容视图和操作按钮。你可以使用...

    Android 仿iPhone UIActionSheet控件效果很好用

    首先,UIActionSheet在Android中的实现可以分为两种主要方法:自定义布局和使用第三方库。自定义布局的方法需要我们手动编写XML和Java代码,这样可以更好地控制界面样式和交互逻辑。而使用第三方库则更为便捷,可以...

    UIAlertView和UIActionSheet

    UIActionSheet的创建同样需要alloc和初始化方法,初始化时除了标题和取消按钮外,还可以设定破坏性按钮(通常用于重要或不可逆的操作,显示为红色)和其他按钮。同样需要指定代理来处理按钮点击事件。显示...

    ios-多功能选择器,UIActionSheet,仿微信ActionSheet.zip

    这个压缩包"ios-多功能选择器,UIActionSheet,仿微信ActionSheet.zip"包含了一个自定义的UIActionSheet实现,其目的是为了实现更丰富的功能和更贴近微信App的用户体验。 UIActionSheet原生的设计相对简单,通常只...

    IOS应用源码——仿UIAlertView和UIActionSheet的一个效果.zip

    在iOS开发中,UIAlertView和UIActionSheet是两个非常常见的用户界面元素,它们分别用于显示警告信息和提供一组可选操作。然而,随着iOS版本的更新,UIAlertView和UIActionSheet已经被弃用,取而代之的是...

    IOS自定义UIActionSheet的Demo

    UIActionSheet属于UIKit框架,通过`UIActionSheet`类来创建和管理。它包含了多个按钮,每个按钮对应一个操作,用户点击后会触发相应的回调。在Swift中,我们可以这样创建一个简单的UIActionSheet: ```swift let ...

    自定义UIActivity和UIActionSheet,并打包成FrameWork

    该工具是自己封装的framework 其中自定义了UIKit的UIActivity和UIActionSheet 后续的自定义UI会持续更新 注意:framework分真机和模拟器 可以通过终端将两者合二为一 适用方法 直接将文件中的framework拖入工程 记得...

    BlockAlertsAnd-ActionSheets, 出色的UIAlertView和UIActionSheet替换灵感由 TweetBot.zip

    BlockAlertsAnd-ActionSheets, 出色的UIAlertView和UIActionSheet替换灵感由 TweetBot 它是如何启动的: A的故事。自从我第一次在应用中使用UIActionSheet或者UIAlertView时,我不喜欢它的实现方式。 如果在同一类中...

    UIActionSheet详解

    这包括标题、代理、取消按钮标题、破坏性按钮(通常是红色,表示不可逆的操作)和其他按钮标题。例如: ```swift let actionSheet = UIActionSheet(title: "Are you sure?", delegate: self, cancelButtonTitle: ...

    ios-自定义UIActionSheet.zip

    本资源"ios-自定义UIActionSheet.zip"提供了一个简单的自定义UIActionSheet的例子,主要探讨了如何在项目中实现更加个性化和功能丰富的弹出视图。 首先,我们了解下UIActionSheet的基本用法。UIActionSheet是...

    ios-弹出视图,支持任何定制,整合UIAlertView和UIActionSheet两种风格的弹框,支持iOS7.zip

    整合了UIAlertView和UIActionSheet这两种系统风格的弹框,创建弹框再也不用兼容iOS8以前和iOS8以后了。代码也不会因为delegate而分离,直接接受Block回调。如果您觉得我的代码帮到了您,我会非常欣慰。同时如果您想...

    自定义模态提示信息

    `UIAlertController`是苹果在iOS 8中引入的一个新类,它替代了之前的`UIAlertView`和`UIActionSheet`,提供了更强大的自定义能力。创建一个模态提示信息,首先需要实例化一个`UIAlertController`对象,指定其样式...

    实现类似iOS中的UIActionSheet效果

    UIActionSheet通常包含一个标题、取消按钮以及一系列其他操作按钮。当点击某个操作按钮时,会触发相应的回调。在自定义这个效果时,我们需要关注以下几个关键点: 1. **布局设计**:UIActionSheet通常从屏幕底部弹...

    UIActionSheet定制按钮的例子

    然而,UIActionSheet的默认样式和功能有时并不能满足开发者的需求,这时就需要进行自定义。"UIActionSheet定制按钮的例子"这个主题就是关于如何改变UIActionSheet中按钮的样式、颜色、字体等属性,以实现更个性化的...

    仿UIAlertView和UIActionSheet的一个效果功能ios源码.rar

    在iOS开发中,UIAlertView和UIActionSheet是两个非常常见的组件,它们用于展示警告信息或提供用户选择操作。然而,随着iOS版本的更新,这两个组件在iOS 8之后被弃用,取而代之的是UIAlertController。这个压缩包文件...

    IOS应用源码——UIActionSheet 的美化效果.zip

    UIActionSheet的基本用法包括添加标题、取消按钮和一组其他按钮。开发者可以通过`UIActionSheet`类的方法来创建并配置它。例如,` initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:`这个方法...

Global site tag (gtag.js) - Google Analytics