微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当视图控制器以模态呈现时保持子视图可见

如何解决当视图控制器以模态呈现时保持子视图可见

我想弄清楚如何在我的应用程序中保持音乐迷你播放器栏可见,即使视图控制器以模态呈现。我试过如下设置迷你播放器的 Z 轴值:

self.miniPlayerViewController.view.layer.zPosition = .greatestFiniteMagnitude

当我打印迷你播放器的 zposition 时,它返回“3.4028234663852886e+38”。模态呈现的视图控制器的 zposition 返回 0.0,因此理论上它应该在 miniplayer 后面,但在模拟器中它覆盖了它。

模态呈现的 VC 如果使用以下代码呈现:

    func selectedPost(cell: HomeFeedTableViewCell) {
    guard let indexPath = tableView.indexPath(for: cell) else { return }
    
    let postVC = PostViewController.instantiate(with: posts[indexPath.row].id)
    navigationController?.pushViewController(postVC,animated: true)
}

如果您有任何想法,我们将不胜感激。

更新 我还在包含 UITabBarController 中子视图初始化的函数中尝试了以下代码,但无济于事:

self.view.bringSubviewToFront(self.miniPlayerViewController.view)
UIApplication.shared.windows.first(where: { $0.isKeyWindow })?.addSubview(self.miniPlayerViewController.view)

更新 #2 我找到了一个临时解决方案,但是当模态VC呈现时子视图是不可交互的,所以我希望找到一个更好的解决方案:

        let window = UIApplication.shared.keyWindow
        let mp = self.miniPlayerViewController.view
        window?.addSubview(mp!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?