iOS:模式视图背景透明?

时间:2014-02-13 17:02:27

标签: ios objective-c background modalviewcontroller

我想在viewController上显示模态视图。 (有一个导航控制器)。

在我看来,我有文字和一个显示模态视图的按钮。

我创建了一个包含我的模态视图的.xib(它是带有图像和标签的视图)。

当我展示它的时候:

ShareController *controller =  [[ShareController alloc] initWithNibName:@"ShareController" bundle: nil];
controller.view.backgroundColor = [UIColor clearColor];
controller.modalPresentationStyle = UIModalPresentationFormSheet;
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentViewController:controller animated:YES completion:nil];

我有我的模态视图,但是,背景变成了黑色......我希望看到我视图中的文字。 (我试图设置alpha等等;但是NOTHING运行:'()

有人帮我吗?

谢谢,

5 个答案:

答案 0 :(得分:23)

您可以查看iOS7示例(请参阅我的通讯),或者您可以轻松尝试:

从“提交”方法中删除此行

controller.view.backgroundColor = [UIColor clearColor];

现在,在ShareController的viewDidLoad中添加:

 self.view.backgroundColor = [UIColor clearColor];
 self.modalPresentationStyle = UIModalPresentationCurrentContext;
 self.modalPresentationStyle = UIModalPresentationFormSheet;

PS

如果你有一个navigationController ...使用

[self.navigationController presentViewController:controller animated:YES completion:nil];

答案 1 :(得分:3)

如果您希望modalVC位于标签栏上,则需要将演示文稿样式定义为UIModalPresentationOverFullScreen

[_presentedViewController setModalPresentationStyle:UIModalPresentationOverFullScreen];

[_presentingViewController presentViewController:_presentedViewController animated:YES completion:nil];

答案 2 :(得分:2)

快速回答是你无法呈现透明的模态视图,而不能使用presentViewController:animated:completion:方法。因为你不能使模态视图控制器透明(你的视图就是放置在它上面)。

您可以制作自定义视图,也可以手动设置动画,这是一种创建所需内容的方法。

答案 3 :(得分:2)

在PresentingViewController中,将以下代码复制到storyboard segue或IBAction下。 SecondViewController * viewController = [self.storyboard instantiateViewControllerWithIdentifier:@" secondViewController"]; // SecondViewController * viewController = [SecondViewController alloc] init]; //如果要以编程方式添加viewcontroller viewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;     [viewController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; [self presentViewController:viewController animated:YES completion:nil]; 在第二个ViewController中,通过storyboard或代码执行以下步骤: 将视图的(self.view)backgroundcolor设置为clearcolor并将不透明度降低到50% 现在您可以实现半透明模态视图

答案 4 :(得分:0)

这是UIWindow's颜色,您可以在appDelegate中初始化UIWindow颜色。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    return YES;
}