iphone - 半透明的 UINavigationController,模态呈现

标签 iphone ios objective-c ipad uikit

如何呈现一个 UINavigationController,使得呈现它的 View 在后台仍然可见?

我的经验是 UINavigationController 会剪切其 View 下方的任何内容,因此设置 UINavigationController.view.alpha 会显示固定颜色的背景,而不是当前 View 的内容。

这可以改变吗?

编辑

我对导航栏不感兴趣,但对导航 Controller 管理的全部内容感兴趣。

最佳答案

问题不在于 UINavigationController,而在于您以模态方式呈现它这一事实。以模态方式呈现的 ViewController 永远不可能是透明的。

您可以通过将 UINavigationControllers View 作为 subview 添加到主 UIWindow 来伪造模态演示。

在 XCode 中测试时,这个例子对我有用:

   UIViewController *viewController = [[UIViewController alloc] init];
   viewController.view.backgroundColor = [[UIColor greenColor] colorWithAlphaComponent:0.35];

   UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:viewController];

   [[[[UIApplication sharedApplication] delegate] window] addSubview:navCon.view];

当然你必须自己做任何动画转换,但使用动画 block 应该很简单。

关于iphone - 半透明的 UINavigationController,模态呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14730224/

相关文章:

iphone - 以编程方式使 UIView 居中

ios - 从左到右将 UIView 移出屏幕并从左再次将其移入

javascript - 为什么 iPad/iOS 上的 native 相机分辨率与 getUserMedia 存在差异?

ios - 我添加了 ScatterPlot View 但我无法在页面上看到它

objective-c - 苹果手机 : responder chain in UIScrollView

iphone - 使用opencv提取blob

ios - Storyboard中的深灰色导航栏

ios - Objective c iPhone 重定向到未捕获异常的错误页面

iphone - 如何在iphone中实现google搜索应用

iphone - 更改 Safari 和 Chrome 中 iOS 7 状态栏的颜色