我通过搜索看到了一些这些问题,但主要与故事板有关。
我只是务实地创建一个模态视图控制器。它实际上是为了使用可达性,一旦连接被视为NotReachable,我就会提供一个这样的模态视图控制器:
-(void)checkConnection: (Reachability*) curReach {
NetworkStatus netStatus = [curReach currentReachabilityStatus];
if (netStatus == NotReachable) {
NSLog(@"inernet reach - not reachable");
UIViewController *modalViewController = [[MESConnectionModalViewController alloc] init];
modalViewController.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2f];
modalViewController.view.opaque= YES;
[self.window.rootViewController presentModalViewController:modalViewController animated:YES];
}
}
在视图控制器MESConnectionModalViewController
内,目前没有代码,只有标准。
当模态视图转换到当前视图时,背景看起来正确(这是短暂的一两秒)。一旦模态完全在屏幕上,它就是全黑,而不是部分黑色。我期待基本上略微涵盖当前的内容。上面的代码在应用程序委托中是seutp,每当Reachability更新时调用,所以我试图在解析Internet连接时显示模态视图控制器。
答案 0 :(得分:5)
模态视图不支持透明度(适用于iPhone)
但您可以将“UIView”添加到父视图中,并使用CoreAnimation
修改强>
-(void)checkConnection: (Reachability*) curReach {
NetworkStatus netStatus = [curReach currentReachabilityStatus];
if (netStatus == NotReachable) {
NSLog(@"internet reach - not reachable");
UIViewController *modalViewController = [[MESConnectionModalViewController alloc] init];
//Set y position to animate it
CGRect frame = modalViewController.view.frame;
frame.origin.y = [[UIApplication sharedApplication] keyWindow].frame.size.height;
modalViewController.view.frame = frame;
modalViewController.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2f];
[self.view addSubview:modalViewController.view];
//Animate appearing
frame.origin.y = 0;
[UIView animateWithDuration:0.2 animations:^{
modalViewController.view.frame = frame;
}];
}
}
此外,您可以将modalViewController
存储为属性,以便将来访问它。
答案 1 :(得分:1)
您需要的是UIWindow
课程中的第二个AppDelegate
你可以在所有东西之上制作像UIAlertView这样的东西!
相信我,这就是你需要的,并确保设置
myWindow2.windowLevel = UIWindowLevelAlert;
访问你的窗口(获取指针):
UIWindow *myWindow2 = [(AppDelegate *)[UIApplication sharedApplication].delegate myWindow2];