Ios 视图出现后视图的背景色是否会改变?

Ios 视图出现后视图的背景色是否会改变?,ios,swift,Ios,Swift,好的,我把登录屏幕的背景设置成某种颜色。我使用的是firebase,当它没有检测到身份验证时,它会实例化登录视图控制器并显示它 当它第一次出现时,它是正确的颜色,但随后它会立即变暗。似乎阿尔法100%恢复正常 但是,如果我在注销按钮(在tableview中)上使用相同的两行代码,视图将显示正确的颜色,并且不会更改 如果需要,我可以提供更多信息。谢谢 if(FIRAuth.auth()?.currentUser == nil) { let vc = self.storybo

好的,我把登录屏幕的背景设置成某种颜色。我使用的是firebase,当它没有检测到身份验证时,它会实例化登录视图控制器并显示它

当它第一次出现时,它是正确的颜色,但随后它会立即变暗。似乎阿尔法100%恢复正常

但是,如果我在注销按钮(在tableview中)上使用相同的两行代码,视图将显示正确的颜色,并且不会更改

如果需要,我可以提供更多信息。谢谢

if(FIRAuth.auth()?.currentUser == nil) {
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "firebaseLoginViewController")
            self.navigationController?.present(vc!, animated: true, completion: nil)
        }

 switch(indexPath.row) {
        case 5:
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "firebaseLoginViewController")
            self.navigationController?.present(vc!, animated: true, completion: nil)
        }

因此,当您呈现视图时,视图填充屏幕后,视图后面的视图将被删除。如果您的视图具有半透明背景色,则您会注意到当删除另一个视图时,黑色窗口会显示出来

有两种方法可以解决这个问题。第一个显然是使用100%的alpha作为背景色。但是,如果您有意寻找半透明外观,则可以看到您的
modalPresentationStyle
。对于您的情况,有几种选择,我认为最好是
。全屏

在使用半透明背景显示viewController之前,请将其设置为类似这样的设置

self.navigationController?.modalPresentationStyle = .overFullScreen

看起来viewController出现了不止一次。请调试Xcode中的视图层次结构。您在哪里检查了
if(FIRAuth.auth()?.currentUser==nil)
?这是问题的答案。您还可以使用
modalPresentationStyle=.overCurrentContext
来获得类似于网页的模式感觉。这将在“旧”viewController上显示viewController,但不会占据整个屏幕。