小编hos*_*shy的帖子

从 SwiftUI 推送到 UIKit 后的导航栏项目

我有一个 SwiftUI NavigationView,我在其中推送到UIViewControllerRepresentable符合要求的UIViewController. 导航视图自然会添加后退按钮。但是,我在推送视图控制器中设置的所有导航栏按钮也消失了。

添加项目的代码并不是什么新鲜事,如果我从一个好的 UIKit 视图控制器中推送,效果就很好:

navigationItem.rightBarButtonItem = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(filterItemTapped(button:)))
Run Code Online (Sandbox Code Playgroud)

我的理论是,他们没有在 NavigationView 和 UIViewController 的导航项之间建立桥接,但也许有人知道解决方法。

uinavigationbar uinavigationcontroller swift swiftui

7
推荐指数
1
解决办法
3174
查看次数

iOS 15 临时授权保留操作

苹果文档指出:

如果用户按下“保留”按钮,系统会提示他们在突出通知或安静通知之间进行选择。

然而,在当前的 iOS 15.4 中,“保留”按钮为您提供了“立即发送”或“按计划摘要发送”的选项。按下前者,通知设置默认为安静发送。

我是否正确地假设文档没有针对 iOS 15 进行更新?并且没有办法使用临时授权并可以选择直接切换到突出的交付而无需用户手动调整交付设置?

(这不是这个的重复)

push-notification ios

6
推荐指数
0
解决办法
411
查看次数

来自资产目录的 AVURLAsset / AVPlayerItem

我有一堆音频文件保存在我的资产目录中,以便从它带来的商店优化中受益。但是,AVAudioPlayer 理想情况下需要 AVURLAssets,随后可以从中创建 AVPlayerItems。

问题是,资产数据没有 URL。如何将资产目录资产与 AVPlayer 结合?

Apple建议通过NSDataAsset构造函数加载文件,这无济于事。

avurlasset asset-catalog avplayeritem

5
推荐指数
0
解决办法
612
查看次数

当前 ViewController 大于其父级

所以我有一个习惯PresentationController,这意味着我已经设置了modalTransitioningStyle = .custom。这意味着它没有设置为overCurrentContextoverFullscreen。这也意味着definesPresentationContextis not 不适用,因为它仅在这些情况下使用。

通过这个,我展示了一个自定义的类似弹出窗口的视图控制器,它占据了屏幕的三分之一。

现在是棘手的部分: 在这个自定义呈现的 VC 上,我想呈现另一个具有相同自定义呈现的视图控制器,该呈现比呈现的呈现更大(假设是屏幕的一半)。

问题: 第二个呈现的视图控制器的框架受到父级的大小和位置的限制,因此您将看不到完整的视图控制器。

即使我设法将其呈现在第一个视图控制器后面的全屏视图控制器上,内容也会出现在后面,而不是前面。

所以问题是:如何呈现一个比使用我自己的呈现控制器呈现的视图控制器具有更大边界的视图控制器?

我认为任何代码在这里都没有帮助,但如果您不这么认为,请告诉我。

presentation uiviewcontroller presentmodalviewcontroller ios

5
推荐指数
0
解决办法
126
查看次数

观察 SwiftUI 中的框架变化

我有可以拖放到其他视图(比如说类别)之上的视图。为了检测我位于哪个类别视图之上,我将它们的帧存储在帧数组中,这发生在它们不可见覆盖层的 onAppear 中。(这是基于教程中 Paul Hudson 的实现)。

这一切都很好,除非这些视图的位置发生变化,例如在设备方向或 iPad 上调整窗口大小时。这当然不会触发 onAppear,因此帧不再匹配。

HStack() {
ForEach(categories) { category in
    ZStack {
        Circle()
        Rectangle()
            .foregroundColor(.clear)
            .overlay(
                GeometryReader { geo in
                    Color.clear
                        .onAppear {
                            categoryFrames[index(for: category)] = geo.frame(in: .global)
                        }
                }
            )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,任何关于如何在这些情况下更新帧或如何以不同方式观察它们的想法都将受到欢迎。

swiftui geometryreader

4
推荐指数
2
解决办法
5539
查看次数

是否有WWDC 2019会议视频摘要?

每年发布的视频如此之多,要真正观看全部视频将花费太多时间。很多时候,您甚至在真正了解细节之前都不知道这对您来说很有趣。

因此,我的问题是:苹果是否发布了有关最重要事实的协议(不是转录,仅是一切)?

session conference wwdc ios swift

0
推荐指数
1
解决办法
91
查看次数