如何在 if 语句中使用 UIActionSheet? [关闭]

2024-03-16

我有一个if声明工作正常,但我需要添加第二个if其中的声明,我似乎不知道如何正确执行。

这是我的代码:

-(IBAction)xButton {
    if([_hasUserTakenAPhoto  isEqual: @"YES"]) {
        _xButtonAfterPhotoTaken = [[UIActionSheet alloc] initWithTitle:@"Delete" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:nil];
        [_xButtonAfterPhotoTaken showInView:self.view];
        NSString *title = [_xButtonAfterPhotoTaken buttonTitleAtIndex:1];

        if(title isEqualToString:@"Delete") {
            [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self];
        }
    } else {
        [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self];
    }
}

当我添加第二个 if 语句时出现错误:

if(title isEqualToString:@"Delete") {
    [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self];
}

我尝试将第二个 if 语句设为“else if”,但它不会让我访问名为“title”的 NSString 对象。有没有更简单的方法来做到这一点,或者我应该将 title 设置为全局变量?


UIActionSheets 不以这种方式使用:

- (IBAction)xButton:(UIButton*)sender
{
    if ([_hasUserTakenAPhoto isEqual:@"YES"])
    {
        _xButtonAfterPhotoTaken = [[UIActionSheet alloc] initWithTitle:@"Delete Photo?" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Delete" otherButtonTitles:nil];
        [_xButtonAfterPhotoTaken showInView:self.view];
    } 
    else
    {
        [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self];
    }
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    // Check if it's the correct action sheet and the delete button (the only one) has been selected.
    if (actionSheet == _xButtonAfterPhotoTaken && buttonIndex == 0)
    {
        [self performSegueWithIdentifier:@"backToHomeFromMediaCaptureVC" sender:self];
    }
}

- (void)actionSheetCancel:(UIActionSheet *)actionSheet
{
    NSLog(@"Canceled");
}

您必须了解界面元素不是“即时”的,存在大量异步情况。当呈现一个UIActionSheet例如,线程不会等待用户回答是或否,它会继续运行。

这就是为什么有代表和区块,你提出UIActionSheet,并且对委托说“当用户实际单击它时我会处理它”。

您可能想知道,为什么不等待它选择它呢?主线程负责更新界面、动画并检索用户输入(触摸、键盘点击等),甚至运行NSTimers是主函数的下标NSRunLoop。停止主线程会锁定界面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 if 语句中使用 UIActionSheet? [关闭] 的相关文章

  • 由于语言错误,Itunes Connect 无法提交

    Thats all it shows https i stack imgur com 0aZm8 png 我不确定它没有告诉我出了什么问题 it shows its linked to the language https i stack
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • 玻璃效果 UIView

    我想知道如何在 UIView 上添加玻璃效果 我想像这样的效果 http pttrns com pickers detail 0dc9d9f6c6a7577613b3453768eee3b3在灰色半透明视图上 您 可以在这里看到 Thank
  • Transit MKDirectionsRequest 产生 null 错误 Error Domain=MKErrorDomain Code=5 "(null)"

    我正在尝试使用 MapKit Directions Request 来获取两个坐标之间的交通方向 当我切换到其他 非 Transit 类型时 下面的代码可以工作 但是当我切换到 Transit 时 它会抛出一个错误 该错误在 Apple 文
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • 使用 Cocoa 获取无法安装的驱动器列表

    我想获取在 OS X 下使用 Cocoa Objective C 无法安装 弹出的驱动器列表 我希望 NSWorkspace getFileSystemInfoForPath 能帮助我 NSArray listOfMedia NSWorks
  • 在后台任务中安排通知

    我正在为 iOS 开发一个日历 闹钟应用程序 它与网络服务器同步 当在服务器上添加活动时 会发出推送通知 以便 iOS 客户端可以获取新数据 并根据需要更新和安排下一次警报的时间 本地通知 但这仅在应用程序在客户端打开时才有效 我希望客户端
  • iOS UIButton 带有圆角和背景 bug

    我发现圆形 UIButton 存在一个奇怪的问题 这是我创建此按钮的代码块 let roundedButton UIButton type System roundedButton frame CGRectMake 100 100 100
  • UISearchController 保留问题

    我正在尝试使用 UISearchController 但是我遇到了无法解决的保留问题 MainTableview 有两个部分 第1节 基于某些正则表达式过滤数据 第2节 All Data 我将 UISearchController 添加到我
  • 您将如何实现一个检测水平滑动以允许分页的 UITableView?

    我想实现一个 UITableView 一次显示 20 行 但考虑到我实际上可能要展示 120 个项目 我想使用某种分页来处理这个问题 使用前 20 项填充表 当用户从右向左滑动时 用接下来的 20 个项目重新加载 UITableView 从
  • 应用程序传输安全已禁用,但仍然出现 SSL 握手错误

    我在通过 HTTPS SSL 连接到 API 时遇到问题 我已经使用下面的字典完全禁用了应用程序传输安全性 ATS 尽管 SSL 证书通过了 NSCURL 的所有测试
  • 在 Instruments 中查找内存泄漏行

    我是 iOS 中的仪器新手 我正在尝试使用 Xcode 4 5 2 并按照本教程查找仪器中的内存泄漏 http soulwithmobiletechnology blogspot sg 2011 04 how to check memory
  • 当您感兴趣的任务完成时,是什么让完成处理程序执行该块?

    我一直在询问并试图了解完成处理程序是如何工作的 我用过很多 也读过很多教程 我将在这里发布我使用的代码 但我希望能够创建自己的代码 而无需使用其他人的代码作为参考 我理解这个完成处理程序 其中调用者方法 void viewDidLoad n
  • 使用 Storyboard 时获取 NSManagedObjectContext

    目标是获取当前的 NSManagedObjectContext 以便使用 Core Data 在 iOS 4 3 中 我将 UINavigationController 的委托设置为 AppDelegate 如下所示 在 AppDelega
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 退出导航控制器

    我试图离开初始视图控制器 并进入空白视图控制器 这很好 但是这会使空白视图控制器也成为导航控制器的一部分 这不是我想要的 我想脱离视图控制器 在视图控制器中 我尝试退出 它会自行弹出 当我尝试视图中的方法时 将出现目标视图控制器 self
  • 显示键盘时如何在 TextView 下方添加更多填充

    当我在 ScrollView 中有 TextField 并点击它时 键盘会按预期显示 但似乎 TextField 已向上移动到足以显示输入区域 但我希望移动到足够的位置 以便整体可见 否则它看起来像是被剪裁了的 我找不到改变这种行为的方法
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • SQL 条件并集

    问题 我有一个返回文件列表的 SQL 函数 现在我应该使用联合将一个附加列表加入到该列表中 但前提是用户是管理员 那可能吗 就像是 CREATE FUNCTION tfu CMS Process bIsAdmin bit Add the p
  • 使用箭头键滚动 div

    这类似于SO 如何用箭头键移动div https stackoverflow com questions 4950575 how to move a div with arrow keys 所以也许一个明确且知情的 不 就足以作为答案 我可
  • Passport js通过url验证

    我在我的应用程序中使用 Express JS 和 Passport JS 我想为新用户提供通过特定 URL 自动登录一次的机会 我可以使用 URL 中的信息从数据库中获取用户 因此我有一个 User 对象 带有 id 电子邮件 散列密码等
  • 在 HttpWebRequest 中添加自定义标头

    我需要添加一些自定义标头HttpWebRequest目的 如何添加自定义标头HttpWebRequestWindows Phone 7 中的对象 您使用Headers具有字符串索引的属性 request Headers X My Custo
  • 如何使用 Backbone 处理单页应用程序的 UI 状态

    请耐心等待 因为我来自传统的 Web 开发背景 使用 ASP Net 甚至服务器端 MVC 我正在尝试使用 Backbone js 构建一个高度交互的单页应用程序 以帮助组织我的 javascript 代码并构建 UI 我在构建 UI 组件
  • JAVA_HOME 未正确定义 编译时出错

    我正在 cocoa 中开发一个使用一些 java 类的应用程序 我收到错误 JAVA HOME 未正确定义我们无法执行 System Library Frameworks JavaVM framework Home bin java 我不知
  • Java,默认编码[重复]

    这个问题在这里已经有答案了 可能的重复 jvm默认编码是什么 https stackoverflow com questions 1006276 what is the default encoding of jvm Hello 当用于处理
  • 函数式反应式编程的“信号”表示是否正确?

    我一直在研究 FRP 并发现了许多不同的实现 我见过的一种模型我将其称为 信号 表示 这一本质将事件和行为结合成一个实体 首先 信号是一个对象 其值是一种行为 其次 信号具有一个事件 流 可以将其视为标准数据结构并对其进行操作 您可以在信号
  • 为什么控制器对路线更新没有响应?

    我想保留控制器的实例而不重新加载 我设置reloadOnSearch为 false 我在控制器中管理路由更改 这是代码 这是我的链接的示例 a href products page 2 next a 我定义了以下模块 angular mod
  • jquery mobile 一页具有不同的元视口设置

    我尝试过调整我的元数据viewportjQM 上的标签beforepageshow等等它根本不起作用 我想这是很明显的原因 我有一个页面上有一个 highcharts 图表 我的视口标签内没有任何内容 通常有width device wid
  • Python 中的元组声明

    在 python 中 可以用括号显式声明一个元组 如下所示 gt gt gt x 0 25 0 25 0 25 0 25 gt gt gt x 0 25 0 25 0 25 0 25 gt gt gt type x
  • 有没有办法对 Neo4j 数据进行分片和复制?

    我正在考虑为我正在从事的一些新项目选择 Neo4j 对于给定的数据需求 本质上基于图形 neo4j 非常适合 并且快速原型为我提供了良好的响应时间 我想了解的是如何扩展 neo4j 部署 具体来说 如何跨 neo4j 部署对数据进行分片 由
  • 我可以从 BitBucket 克隆 git 存储库吗?

    我正在尝试使用 BitBucket git 存储库 但我个人更喜欢使用 hg 这有效 git clone https email protected cdn cgi l email protection projectuser projec
  • Flask-SQLAlchemy – 您可以在模型中进行查询吗?

    我正在构建一个使用 Flask SQLAlchemy 的 Flask Web 应用程序 并且我还在考虑使用 Flask Login 来处理会话并保护某些视图 Flask Login 需要某些方法 我认为这些方法对应用程序的各个部分都很有用
  • MySQL标记问题:如何选择已标记为X、Y和Z的项目?

    我正在处理一个数据库 其中的项目被 标记 一定次数 item 100k 行 id name 其他的东西 tag 10k 行 id name item2tag 1 000 000 行 item id tag id count 我正在寻找最快的
  • C# 中集合的 XML 序列化

    我有两个课程如下 public class Info XmlAttribute public string language public int version public Book book public Info public In
  • Swagger-Web Api 文档(Swashbuckle 中缺少 Bootstrapper)

    我正在尝试使用 swagger 作为我的 Web api 文档 为此我已经从 nuget 包安装了 Swashbuckle 但我无法在 swaggerconfig cs 类中获取 Bootstrapper 包 那么是否有其他替代方法可以在
  • 如何在 Windows 7 的 git bash 终端中不使用鼠标选择文本?

    我使用的是 Windows 7 安装 Windows 版 Git 后可以使用 Git Bash I found mouse inconvenient to select copy paste in terminal window What
  • C++CLI。本机部分是用纯 C++ 编写的,但在 CLI 中编译的速度与纯本机 C++ 一样快吗?

    我想将音频计算委托给 C 层 但通过 WPF GUI 处理和编辑音频内容 我简要了解了 C CLI 我想知道 我应该使用 C CLI 作为 C GUI 和 C 音频管理之间的中间层吗 或者我应该简单地将代码放入 C CLI 中并期望它以相同
  • 如何在 if 语句中使用 UIActionSheet? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我有一个if声明工作正常 但我需要添加第二个if其中的声明 我似乎不知道如何正确执行 这是我的代码 IBAction xButto