模态呈现的视图控制器的透明背景
我正在使用Parse & ParseUI。 我希望我的PFLoginViewController子类具有透明背景。将来,我想在背景中放置一个模糊的视图。模态呈现的视图控制器的透明背景
但是......一旦PFLoginViewController的动画完成后,背景变成黑色......在动画期间,背景是透明的。
func presentLogin() {
var loginViewController = LoginViewController()
var signupViewController = SignUpViewController()
loginViewController.fields = .UsernameAndPassword | .LogInButton | .PasswordForgotten | .SignUpButton | PFLogInFields.DismissButton
signupViewController.fields = .UsernameAndPassword | .Email | .DismissButton | .SignUpButton
loginViewController.delegate = self
loginViewController.logInView.backgroundColor = UIColor.clearColor()
loginViewController.logInView.opaque = false
signupViewController.delegate = self
loginViewController.signUpController = signupViewController
self.presentViewController(loginViewController, animated: true) {() -> Void in
//
}
}
我的LoginController的使用子类:
class LoginViewController: PFLogInViewController {
@IBOutlet weak var _nmcLogoLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let userName = SettingsManager.userName
let password = SettingsManager.password
self.logInView.usernameField.text = userName
self.logInView.passwordField.text = password
NSBundle.mainBundle().loadNibNamed("LoginViewBranding", owner: self, options: nil)[0] as? UIView
self.logInView.logo = _nmcLogoLabel
}
}
我怎样才能使它透明?
P.s.将clearColor应用于子类中的backgroundColor没有区别
修正了它。
问题是,presentViewController不保留我所覆盖的视图。
loginViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
没有办法。
部分被隐藏在问题。你需要三条线来使背景透明,即。 isOpaque = false
backgroundColor = .clear
&设置modalPresentationStyle
以下是完整的解决方案。在调用视图控制器,调用这个函数:
func presentModal() {
let modalController = ModalViewController()
modalViewController.modalPresentationStyle = .OverCurrentContext
presentViewController(modalViewController, animated: true, completion: nil)
}
而且在ModalViewController
的viewDidLoad()
:
override func viewDidLoad() {
super.viewDidLoad()
view.isOpaque = false
view.backgroundColor = .clear // try other colors, say: .white or black with Alpha etc.
}
当我在'Init'中设置代码,而不是在'viewDidLoad'方法中设置代码 – 2017-07-03 10:11:29
感谢您指出这一点。我更新了代码。 – 2017-07-04 12:25:34
@NitinNain,我设置view.alpha = 0.35,但所有视图控制器的控制也设置为alpha和外观模糊 – 2018-02-21 09:37:12
可你也注释代码为 “pushViewController”。 – Alok 2015-07-02 12:22:53