我正在尝试从NavigationController推送viewcontroller,并且在viewcontroller中我将AlphaComponent设置为透明效果,但它不起作用。它正在使用presnt,但它不适用于Push,如何解决这个问题?
let vc = SelectGeoLocation(nibName: "SelectGeoLocation", bundle: nil)
self.navigationController?.pushViewController(vc, animated: true)
嗯,这是因为你的UIViewcontrollers
的层次结构
让我解释一下,
UINavigationController
是UIViewControllers
的最后一个堆叠,当你推动一个UIViewController
你将它推入堆栈意味着你的UIViewController
后面没有任何东西,因为UIWindow
层次结构在UINavigationController
内部包含一个元素。
看看这个图像,解释什么是最后一个堆栈,考虑这是你的UINavigationViewController
与其UIViewControllers
作为数据元素
现在为什么它在你present
UIViewController
时起作用,只是因为你将UIViewController
覆盖在你当前可见的那个上面。
包起来:
当你在现场设置View.backgroundColor = .clear
时,你可以看到你现在的UIViewController
的背后,但是当你推动你只是看到黑屏,因为那里没有任何东西。
简短回答:除非你出席,否则你无法看到背后的东西。
初始化时,SelectGeoLocation的视图未加载。
您是否尝试将self.view.alpha = xxx放入SelectGeoLocation-ViewDidLoad中?