- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的应用程序崩溃了,一定是因为 UIAlertController。
此问题仅发生在 UIAlertController 可用的 iOS 8.x 上。奇怪的是,我的应用程序既不使用 UIAlertViewController 也不使用 UIAlertView。
报告告诉我:
Trying to dismiss UIAlertController <UIAlertController: 0x172c5d80> with unknown presenter.
这怎么会发生?
我想过
但这些案例中没有一个让我崩溃。
崩溃日志告诉我的事实是,操作系统显示了一个将附加到我的应用程序窗口的 AlertView,并且在某些情况下会松开显示 UIAlertViewController 的父 View Controller 。
有什么想法可以找到问题吗?
这里是堆栈跟踪
_________________________________
0 CoreFoundation 0x2bc0c45f __exceptionPreprocess + 127
1 libobjc.A.dylib 0x39c79c8b objc_exception_throw + 36
2 CoreFoundation 0x2bc0c3a5 +[NSException raise:format:] + 110
3 UIKit 0x2f4ad13d -[UIAlertController _dismissAnimated:triggeringAction:triggeredByPopoverDimmingView:] + 414
4 UIKit 0x2f4acf97 -[UIAlertController _dismissAnimated:triggeringAction:] + 28
5 UIKit 0x2f590a0b -[_UIAlertControllerActionView touchesEnded:withEvent:] + 160
6 UIKit 0x2f159567 -[UIWindow _sendTouchesForEvent:] + 520
7 UIKit 0x2f152e31 -[UIWindow sendEvent:] + 542
8 UIKit 0x2f129759 -[UIApplication sendEvent:] + 194
9 UIKit 0x2f39d2f9 _UIApplicationHandleEventFromQueueEvent + 14166
10 UIKit 0x2f1281a9 _UIApplicationHandleEventQueue + 1350
11 CoreFoundation 0x2bbd2fbf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
12 CoreFoundation 0x2bbd23cf __CFRunLoopDoSources0 + 216
13 CoreFoundation 0x2bbd0a35 __CFRunLoopRun + 770
14 CoreFoundation 0x2bb1e3b1 CFRunLoopRunSpecific + 474
15 CoreFoundation 0x2bb1e1c3 CFRunLoopRunInMode + 104
16 GraphicsServices 0x3308d201 GSEventRunModal + 134
17 UIKit 0x2f18843d UIApplicationMain + 1438
18 MyApp 0x00028a07 main (main.mm:16)
编辑
holes 询问我的窗口初始化。这是我的 AppDelegate 的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[MyAppCustomWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
_mainViewController = [[MyAppContainerViewController alloc] initWithNibName:nil bundle:nil];
_mainStatusBarVC = [[MyAppStatusBarVC alloc] initWithRootVC:_mainViewController];
[self.window setRootViewController:_mainStatusBarVC];
[self.window makeKeyAndVisible];
return YES;
}
最佳答案
我敢打赌你的崩溃发生在 iPad 上。
在 iPad 上,从 iOS8 开始,UIActionSheet 似乎由 UIAlertController
处理
有了这段代码,
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if(buttonIndex == 1) return; // Cancel button
[self doSomeViewControllerDismisses];
}
我的应用程序崩溃并出现与您遇到的相同的错误。
为了防止这种情况,我只是在下一次 MainThread 执行时调度复杂的关闭调用,为隐藏的 UIAlertViewController
提供正确释放的机会。
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if(buttonIndex == 1) return; // Cancel button
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomeViewControllerDismisses];
});
}
关于ios - 试图用未知的演示者解雇 UIAlertController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29649223/
我们如何从第一个警报打开第二个 UIAlert? 第一段代码工作正常,显示了警报。但是我希望能够调用第二个警报 View ,如果选择了第一个警报中的一个选项,就会出现该 View 。 在下面的示例中,
我有一个 Parse Sign Up 和一个 UIAlertController,我希望 UIAlertController 显示一个指示器,但在注册出现错误时被另一个 UIAlertControll
如何在 UIAlertController 外部点击时关闭 UIAlertController? 我可以添加 UIAlertActionStyleCancel 样式的 UIAlertAction 来关
这是我的代码:请检查是否出了什么问题?请给我 UIActionsheet (UIAlertController) 的代码,其中包含 swift 中的数组 let alertA = UIAlertCon
我正在使用 UIAlertController 要求用户输入一个字符串,这个字符串不能为空。为此,我为位于 UIAlertController 上的 UITextField 上的每个编辑事件添加了处理
我想介绍一个 UIAlertController与 UIAlertControllerStyleAlert风格,同时解雇 UIAlertController与 UIAlertControllerSty
我正在使用 UIAlertController 获取用户输入并更新表格单元格。每次当我尝试创建警报时,我都会在控制台中收到以下警告 2015-11-19 17:51:42.034 SimpleTabl
我正在尝试将 UIAlertController 中的推送通知(PN)中的消息从 AppDelegate 呈现到当前 ViewController。如果我发送 1 个 PN,没有问题,并且会显示警报!
我正在尝试从 UIAlertController 文本字段中获取文本。有人可以告诉我我做错了什么,因为它不起作用。我得到一个零返回。 - (IBAction)btnMakeRec {
我正在将我的应用程序移植到 iOS 8.0 并注意到 UIAlertView 已被弃用。 所以我改变了使用 UIAlertController 的方法。这在大多数情况下都有效。 除了,当我的应用程序打
我想根据代码更改警报操作按钮的顺序,我尝试了所有可能性,但不允许我更改顺序。 根据 HIG,取消在右侧 https://developer.apple.com/library/ios/document
在 iOS 8 及更低版本中显示 UIActionSheet当键盘出现时,将在键盘上显示操作表。在 iOS 9 中,情况不再如此。 在我的应用程序中,我们有一个聊天功能,并希望通过键盘显示一个 Act
嗨,我想知道是否可以使用UIAlert播放声音?根据以下文章,这似乎是可能的,但我正在努力将Obj-C转换为Swift。任何帮助表示赞赏! IOS alert message with sound 最
我需要一个系统来隐藏所有UIAlertController当她进入后台时在我的应用程序中。目前我使用 BaseViewController我所有的类(class)UIViewControllers注册
我正在调用带有2个文本字段的UIAlertController(在Obj-C中)。我已经定义了需要在警报中使用的全局UITextField,因为我需要利用UITextFieldDelegate。 我的
我在 View 中添加了一个 UIAlterController。 IT 触发很好,看起来很好,并且有它的 Action ,但是点击取消 Action 什么都不做,它不运行任何代码,即使我添加一个 b
这个问题在这里已经有了答案: How to add textField in UIAlertController? (4 个回答) 4年前关闭。 我可以使用在 UIAlertController 中添
我正在开发一个带有深色主题的 iOS 应用程序,我想使用 UIAlertController .但是,白色警报看起来不合适。即使在黑暗主题的应用程序上使用黑暗主题是否违反人机界面指南 UIAlertC
我正在做一个使用 UIAlertView 的项目,现在的问题是我必须替换所有 UIAlertView's与 UIAlertController's代码中有大约 1250 个。我打算使用现有的 Util
我正在尝试使用操作表样式创建 UIAlertController,但我想将背景颜色更改为灰色。我已经能够找到一种方法来更改 UIAlertController 的背景颜色,但不能更改取消按钮。单独的取
我是一名优秀的程序员,十分优秀!