bil*_*tum 13 iphone uialertview ios ios7
当我的应用程序进入后台时,我的模态显示视图控制器会像这样解除警报视图...
// called when view controller receives a UIApplicationDidEnterBackgroundNotification
- (void)applicationDidEnterBackground:(NSNotification *)notification
{
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.alertView = nil;
}
}
Run Code Online (Sandbox Code Playgroud)
当我的应用程序返回到前台而没有被终止时,警报视图就消失了.但是,导航栏中的条形按钮项(来自UINavigationController)仍然显示为灰色,就像仍然显示警报视图一样.
此外,驳回模态视图控制器(通过轻敲调光栏按钮项)揭示了用于在呈现视图控制器栏按钮项也变暗.条形按钮项目功能齐全,但仍保持灰色.
那么如何解开条形按钮项?或者,如何在iOS 7中以编程方式正确关闭警报视图以响应应用程序进入后台?
在iOS的7 UI转换指南规定如下:
出现警报或操作表时,iOS 7会自动调暗其后面视图的色调颜色.要响应此颜色更改,在其呈现中使用tintColor的自定义视图子类应覆盖tintColorDidChange以在适当时刷新呈现.
我的导航栏和栏按钮项不是自定义视图; 我没有将它们分类.我在故事板中使用默认属性创建了导航栏(与栏按钮项相同).所以我没有地方可以覆盖tintColorDidChange.
我的所有视图都使用tintColor属性的默认值.
我尝试将色调颜色重新设置为默认值而不成功:
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.view.tintColor = nil;
self.view.window.tintColor = nil;
self.alertView = nil;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试在视图控制器的viewDidAppear中重新设置色调颜色:没有成功.
我还尝试将主视图的tintAdjustmentMode设置为"normal"而不成功:
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.alertView = nil;
self.view.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果应用程序在后台终止,应用程序将重新启动具有正确色调的条形按钮项(即,未调暗).
我很确定这是苹果公司的一个错误.我已经在https://bugreport.apple.com上提交了一份错误报告,请提交一份重复的错误报告以让Apple注意它,因为这就是Apple如何优先处理错误.
我在我的应用程序中遇到了同样的错误,并成功找到了解决方法.您需要做的就是在后台关闭UIAlertView后,在应用程序的主窗口上将tintAdjustmentMode设置为UIViewTintAdjustmentModeNormal.简单 :)
虽然我可以以编程方式关闭响应a的警报视图UIApplicationDidEnterBackgroundNotification,但iOS 7中的自动色调调暗将不会更新.
但是,如果我解除警报视图以响应UIApplicationWillResignActiveNotification相反的情况,则自动色调调暗行为将响应.
// called when view controller receives a UIApplicationWillResignActiveNotification
- (void)applicationWillResignActiveNotification:(NSNotification *)notification
{
if (self.alertView) {
[self.alertView dismissWithClickedButtonIndex:0 animated:NO];
self.alertView = nil;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13438 次 |
| 最近记录: |