首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何解决UIAlertController (ActionSheet)在xamarin.ios原生app的iPad上崩溃?

在xamarin.ios原生app的iPad上,解决UIAlertController (ActionSheet)崩溃的问题可以通过以下步骤进行:

  1. 确保使用的UIAlertController是在正确的视图控制器上进行弹出。在iPad上,UIAlertController需要在一个已经显示的视图控制器上进行弹出,而不是直接在window上弹出。可以使用以下代码来获取当前正在显示的视图控制器:
代码语言:csharp
复制
UIViewController currentViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
while (currentViewController.PresentedViewController != null)
{
    currentViewController = currentViewController.PresentedViewController;
}
  1. 在弹出UIAlertController之前,先检查设备的用户界面Idiom是否为iPad。可以使用以下代码来检查:
代码语言:csharp
复制
if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
{
    // 在iPad上进行处理
}
  1. 如果在iPad上,可以使用UIPopoverPresentationController来替代UIAlertController的ActionSheet样式。UIPopoverPresentationController可以在iPad上以弹出窗口的形式显示选项。以下是示例代码:
代码语言:csharp
复制
UIAlertController alertController = UIAlertController.Create("标题", "消息", UIAlertControllerStyle.ActionSheet);

// 添加Action按钮

// 创建UIPopoverPresentationController
UIPopoverPresentationController popoverPresentationController = alertController.PopoverPresentationController;
if (popoverPresentationController != null)
{
    popoverPresentationController.SourceView = currentViewController.View;
    popoverPresentationController.SourceRect = new CGRect(currentViewController.View.Bounds.GetMidX(), currentViewController.View.Bounds.GetMidY(), 0, 0);
    popoverPresentationController.PermittedArrowDirections = UIPopoverArrowDirection.Any;
}

currentViewController.PresentViewController(alertController, true, null);

这样,在iPad上使用UIPopoverPresentationController来替代UIAlertController的ActionSheet样式,可以避免崩溃的问题。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议在腾讯云官方网站上查找相关产品和解决方案,以满足具体的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【IOS开发基础系列】UIAlertController专题

是使用对话框(alert)还是使用上拉菜单(action sheet),就取决于创建控制器时,您是如何设置首选样式。...和对话框不同,拉菜单展示形式和设备大小有关。iPhone(紧缩宽度),拉菜单从屏幕底部升起。iPad(常规宽度),拉菜单以弹出框形式展现。         ...        如果拉菜单中有“取消”按钮的话,那么它永远都会出现在菜单底部,不管添加次序是如何(就是这么任性)。...当我们使用iPad或其他常规宽度设备时,就会得到一个运行时异常: Terminating app due to uncaught exception ‘NSGenericException’, reason...这个时候拉菜单是以一个固定在源按钮弹出框形式显示。         要注意UIAlertController使用弹出框时候自动移除了取消按钮。

46830

升级IOS8游戏上传自定义头像功能失效问题

测试设备是ipad air2,系统版本IOS 8.0.1,点击游戏内按钮直接无响应了。...原因是UIActionSheetios8中已经被弃用了(点击查看详情>>),使用UIAlertController进行替代,这里有两篇文件介绍它: UIAlertController in IOS8>...好神奇,然后代码又调回去,试了一,好了!居然好了! 日志显示其实游戏已经启动了,都开始请求CDN资源了,只是界面还停留在重启那个界面,但崩溃点却挂在了CCDictionary.cpp中。...换成IOS8.1SDK后,上传头像功能不可用了,搜索了好久发现都跟自己问题对不上,当输入特定关键字时出来第一条就是自己想要,结果几分钟就把问题解决了,但找相应答案之前却已经花了将近4个小时…...、上传头像等问题就像一座大山挡了你面前。

67020

在这个行当,不做程序员也得懂技术

先来捋一捋思路,关于各个岗位合作打造(移动端)产品一点想法: 为什么只有程序员是不够 如何做一个好非程序员 声明: 本人是程序员,截止到目前,我用设计都是自己设计,我用产品策略都是自己思考...即便是移动端出现之前,大家 PC 用软件,也是需要有人来做设计,有人来思考产品。...这个产品解决了什么样问题,用什么方式解决,其他产品解决了这个问题吗,它们是怎么解决,你和它们相比有什么不同……这款产品有自己设计风格吗,如果是依照平台风格,那么有什么地方没遵循平台规范吗,能不能先破再立...去年 8 月份我做了自己第一款 App Store App,花了 12 天,2000 行 Swift。...UIAlertController 上面这个是 iOS 系统提供控件 - UIAlertController,这个东西程序员眼里表现起来是这样: let alert = UIAlertController

47920

Xamarin 技术全解析

iOS原生应用 下面会使用Mac OS XXamarin Studio来演示如何构建iOS应用: - 打开Xamarin Studio - 新建一个项目,选择iOS - App - Single View...打开Main.storyboard 文件,可以从Toolbox拖拽一些原生控件到View Controller,与Xcode中使用方式一致,但是有一些功能没有Xcode 强大,比如设置ViewAuto...2.2 使用Xamarin.Android来构建Android原生应用 下面会使用Mac OS XXamarin Studio来演示如何构建iOS应用: - 打开Xamarin Studio - 新建一个项目...打开Main.axml文件,可以从Toolbox拖拽一些原生控件到View Controller,与Eclipse体验类似,也可以通过编辑XML方式更改界面。 ...透过 Ahead-of-Time (AOT) 编译程序,直接将Xamarin.iOS程序编译为ARM执行档。编译封装完成应用程序被直接编译为原生二进制执行文件。 ?

5.9K70

来了,iOSJSCore与H5交互

h5概念很热,咱们不多多说,但是移动端App中某些需要快速开发地方也是很有好处--可以把一部分不想做,不方便做甩给web端去做,咱么只需要做好native与web通信就好啦?...那么有了桥梁我们同样需要给WebView说一声让他知道native存在--- self.ctx[@"App"] = self; 这样相互直接就知道对方存,js通过App这个作为native引用,...最后是一个兼容性彩蛋,也是最坑一点---alert UIAlertiOS 9之后慢慢被禁用,而到了iOS13之后这问题异常严重,然鹅直接js进行alert居然报错,好在是哟办法 这里附上几种带和不带输入和提示框...(dispatch_get_main_queue(), ^{ //自定义原生提示框替换原来提示框 // message.isString...JSValue *message) { dispatch_async(dispatch_get_main_queue(), ^{ //自定义原生提示框替换原来提示框

1.2K30

iOS14开发-UIViewController

介绍 UIViewController 可以理解为 App 界面,负责管理 UIView 中显示内容和用户交互,主要有以下作用: 负责创建和管理 UIView。 响应用户与视图交互。...接收值 UIViewController 实现需要传值 UIViewController 中闭包属性,闭包实现中拿到传过来值进行使用。...常见ViewController UIAlertController 警告(对话框)控制器。 用一个对话框进行信息提示,通过模态形式弹出。 有两种样式:alert和actionSheet。...(title: "选择头像", message: "请选择合适方式来处理", preferredStyle: .actionSheet) let ok = UIAlertAction...UINavigationItem是 UIViewController 属性,用于配置当前 UIViewController 显示时UINavigationBar显示内容。

2.3K20

微信iOS9适配总结

本文总结了微信适配iOS9遇到问题和解决方案。 一、iOS9问题汇总 1....解决方法是后台修改判断条件,并吸取教训支持可配置,上线后解决了这个问题。 然而,iOS9.1正式版,苹果又把systemName改回"iPhone OS"了。...注:启动完后再生成window,可以不设rootViewController,但还是建议以后所有window都要设。 二、iPad分屏 1、如何启用iPad分屏 a....如果以前通过supportedInterfaceOrientations等函数来限制某些界面iPad不能转屏,启用分屏后这个限制将失效。...如果不支持分屏,需要在项目设置中General - Deployment Info中勾选Requires full screen 2、如何适配iPad分屏 分屏和转屏本质都是改变了屏幕尺寸

2.1K50

ios开发之xcode环境介绍

作为一个刚入门ios开发的人来说,对于ios开发,对于xcode一切都是那么陌生,那么我们如何开始我们第一步呢?...Organization Identifier 这里是你组织/公司唯一标识,这部分和 Product Name 会混合成你产品唯一标识,这个标识整个 iOS App Store是唯一,所以一般建议用你域名反向形式...Device 我们选择只针对 iPhone ,另外还有选项是 iPad 和 Universal(iPhone 和 iPad 都兼容)。...由于我们现在选中是 storyboard,所以进入了一个可视化编辑界面。这是个所见即所得编辑器,最后在手机屏幕 UI 基本就是这个编辑器里样子。...注意屏幕中 Button 边缘,这八个点可以拖动来缩放 Button,基本所有的 UI 组件都可以这样操作。

2.3K60

Xamarin 学习笔记 - 配置环境(Windows & iOS)

Xamarin使得你可以使用C#创建原生应用。 文章另一部分,我将从定义硬件和软件需求开始入手,即便是你没有任何移动端开发经验,也能够开始了解如何开始构建一个移动应用。...通过将你设备与IDE配对,我们可以设备直接部署,测试和调试应用程序。 那么,我们如何使用它? 这很简单,我们可以从你设备中选择一个新目标开始使用这一功能。 ? ?...Visual Studio App Center(Xamarin Test Cloud之前) 创建新应用程序和开发之后,开发人员测试过程中面临许多挑战,甚至他们必须通过持续集成交付,此时你需要一个允许你许多设备中进行测试环境...他们采取了所有这些不同解决方案,并将它们集中一个中央应用程序中。...一旦发布并使用了应用程序,开发人员就想知道发生了什么并且发生崩溃时易于维护,你可以从应用程序字段中获取崩溃报告中实时堆栈跟踪。

6.1K20

实践-小细节Ⅳ

1部分导入A视频文件,点击 2 (照片)时候会在 3 位置出现,此时,我们直接把视频按住,拖到桌面即可,是不是很简单啊! 2. 如何替换Xcode整个工程中某个字符串A为 B ?...解决方法 如图所示,我们忽略了Find 下面还有一个 Replace,但是需要指出是 必须要先使用 Find 搜索出所有内容,再点击 Replace 才行,否则 Replace All按钮是灰色...Archives列表,这个列表中会同步你所登录全部账号APP,如果你有多个账号登录,那么多个账号中APP都会在Archives列表中展示出来,不过值得一提时,使用A账户打包APP,不会同步到其他账户中...,就算A和B同时登录,使用A打包App单独登录B账户时也不会有同步记录。...第二个方法使用默认模式(NSDefaultRunLoopMode)。 主线程就马上执行 ~~。 10.模拟器UITextFeld中输入 _ “确定“后就会崩溃。真机上不会崩溃

79710

iOS 多国语言本地化与App内语言切换(Swift)写在前面前言准备工作storyboardxib本地化纯代码本地化语言切换后记

写在前面 本文同步 个人博客 简书 掘金 慕课 使用Xcode 9.3 Swift4.1 前言 语言本地化 大家肯定都多少都听过,今天我要分享是快速实现语言本地化,与App内语言切换 核心内容主要是三个部分...xxx.storyboard --generate-strings-file new.strings 打开new.strings 将新内容手动复制到原来string。...,设置时候改变其内容即可 主要涉及到两个问题 storyboard/xib如何切换语言 如何刷新界面 对于上面都算是正常本地化内容,基本介绍本地化教程都会有。...但是,脚本对于带空格字符串生成内容还是有问题,由于是使用sed命令,本人还不是很熟,只能想其他办法,这时候Base.lproj就派上用场了 我们将空格都替换成下划线,或者驼峰命名,Base中一一对应..., 具体en和zh中写具体内容,这时Base作用就是为了方便自动生成代码而已了。

2.4K31

iOS10.3后允许App运行中变更App图标

不知道大家注意到没有,iPhone自带日历和始终App图标是实时显示当日日期和当时时间,时间秒钟还会走动,这其实就做到了安装完App后,还能自由地变更App图标,而现在,我们普通开发者也可以实现了...效果如下: 可以看到点击按钮操作后将App图标更换掉了。 这个效果可以用在很多地方,做出更加需要时效性App,比如日历、时间、天气、票据、活动等等。...图标发生错误了 : %@",error); } }]; } 这样我们就实现了最简单App运行时候更换App图标的方法,但是,当点击按钮变更图标的时候,系统会弹出一个提示框:...这体验就不太顺滑了,总不能每次都去打断用户吧,下面着手解决这个问题。...但是想想iPhone自带时钟App,可以做到秒钟都随着时间变化,这又是如何做到呢?

81420

IOS13详细适配

解决方案:每个UIView都做修改是不现实,统一实现方式为: plist文件中增加配置项UIUserInterfaceStyle,值为UIUserInterfaceStyleLight。...withString: @""]; token = [token stringByReplacingOccurrencesOfString: @" " withString: @""]; 这段代码运行在 iOS 13 已经无法获取到准确...解决方案: plist文件中增加配置项NSBluetoothAlwaysUsageDescription。 ?...8.通过kvc获取获取searchBar中TextField方法更改,会引起崩溃 原因: ios13之后把SearchBar中textField直接暴露给开发者使用,无需通过kvc获取。...从2020年4月开始,所有使⽤ iOS13 SDK App将必须提供 LaunchScreen,LaunchImage即将退出历史舞台。可以使用Launch Storyboards来进行解决

3.3K10

C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作

那么问题来了,C#如何来开发Android和IOS应用?微软会怎么做我们不确定,但是我们倒是可以来看看Xamarin是如何。...那个Dalvik虚拟机实体就像一个宿主,我们APP宿主上运行,而我们所有用C#写方法都会以ACW形式被调用。...也就是说C#写IPhone应用程序和objective-c 写是一样。并且Xamarin团队保证每一个IOS系统更新时间同步更新Xamarin.IOS这样我们就不用担心被滞后了。...,当然Xamarin.Forms不能够满足你要求时候,可以使用Xamarin.Android和Xamarin.IOSUI控件,这些也是Native,也就是说UI方面不会有性能影响。   ...相对而言,开发Android应用程序就会显得繁琐一些,底下还有一些隐藏东西我们没有具体讲,包括一个app创建过程,C#与Java集成在一起开发时候交互等等,这些问题我们就留在后面慢慢来解决

2.6K110

小程序iOS客户端框架——控件事件逻辑框架与控件原生化(下)

如前所述,原生控件是插入到webview控件(实际实现时是插入到WKWebView下WKScrollView下),如图7,网页元素总是绘制WKContentView控件——WKContentView...这一问题可以通过将H5弹出组件都原生化得以解决,如上节提到Toast、Alert、Picker、ActionSheet原生化; 3 如果开发者div滚动条中插入原生控件作为div子节点,预期原生控件应该随着父节点...为了解决这一问题,客户端尝试对WKWebView解析HTML元素原理进行分析,WKWebView进行HTML解析时,会根据页面DOM元素WKWebView控件下生成对应iOS原生控件,通过分析,...利用这个属性,我们可以开发者期望插入原生控件位置,预生成一个包含overflow标签DIV节点,然后插入原生控件时,将原生控件插入到该标签对应UIScrollView,就可以做到“原生控件不遮挡...因此需要对事件做特殊处理:通过重载WKWebViewhitTest方法,该方法处理逻辑中优先处理网页事件,如果网页未处理,再传递给原生控件。 8.

2.8K40

分享超详细 WKWebView 开发和使用经验

didFailProvisionalNavigation 当容器开始加载数据 当网页内容开始主 Frame 开始渲染 提交主 Frame 导航期间发生了错误 当接受 HTTPS 请求证书后执行 当容器内容发生崩溃...,否则在 iOS10 以下设备会造成崩溃,原因是 WKWebView 释放时候,扔被强持有观察者。...允许 H5 中 Video 标签支持画中画模式,默认 YES 可以使用 H5 中 JS 代码实现画中画,video.requestPictureInPicture(),iPhone 不支持,iPad...UI代理 WKUIDelegate UI 代理方法,是 H5 部分 UI 操作和原生交互代理方法,其中包括如下: 打开新 WebView createWebViewWithConfiguration...,弹出窗口如果使用 UIAlertController 作为对接,则要考虑控制器是否存在,是否有并发弹出窗操作,因为这些会导致 UIAlertController弹不出来,最终可能在逻辑造成 completionHandler

4.7K30

WeUI教程第三方扩展及其他UI框架对比

WeUI 是一套同微信原生视觉体验一致基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户使用感知更加统一。...,然后页面中引入,即可使用 WeUI 组件。...它很好解决推入和返回问题 它有微信一样ui界面 它还提供了基本ui组件(弹出框,actionsheet等) weui缺点 页面内容过长时候,滑动不流畅,但可以通过iscroll修正 WeUI...基于webpack + vue-loader + vux可以快速开发移动端页面,配合vux-loader方便你WeUI基础定制需要样式。...但VUX并不完全依赖于WeUI,VUX WeUI 基础扩展了多个常用组件,但是尽量保持整体UI样式接近WeUI设计规范。

2.9K20
领券