小编Bel*_*000的帖子

在iPad iOS 13上启动时,UISplitViewController无法正确折叠

我正在将应用程序过渡到iOS 13,并且UISplitViewController折叠到详细信息视图上,而不是在启动时折叠到主视图上-仅在iPad上。此外,后退按钮也没有显示-好像它是根视图控制器一样。

我的应用程序包含一个UISplitViewController已被子类化的,符合UISplitViewControllerDelegate。拆分视图包含两个子视图-两者都UINavigationControllers嵌入到UITabBarController(子类TabViewController)中

在拆分视图中viewDidLoad,委托设置为selfpreferredDisplayMode并且设置为.allVisible

由于某种原因,splitViewController(_:collapseSecondary:onto:)未调用该方法。

iOS版12iPhoneiPad上,该方法splitViewController(_:collapseSecondary:onto:)被正确调用的推出,之间application(didFinishLaunchingWithOptions)applicationDidBecomeActive

iPhone上的iOS 13中,该方法在启动时在和之间正确调用。splitViewController(_:collapseSecondary:onto:)scene(willConnectTo session:)sceneWillEnterForeground

的iOS 13的iPad,然而,如果该窗口具有发射例如为分割视图中创建新的场景紧凑的宽度,该splitViewController(_:collapseSecondary:onto:)方法没有在所有调用。仅在将窗口扩展到常规宽度然后收缩时才调用该方法。

class SplitViewController: UISplitViewController, UISplitViewControllerDelegate {
override func viewDidLoad() {
        super.viewDidLoad()
        self.delegate = self
        preferredDisplayMode = .allVisible
}

func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController:UIViewController, onto …
Run Code Online (Sandbox Code Playgroud)

ipad uisplitviewcontroller ios swift ios13

10
推荐指数
1
解决办法
950
查看次数

您如何将 SwiftUI 应用程序命令连接到其他视图中的功能?

在 WWDC20 上引入的新 SwiftUI 应用程序声明允许实现出现在菜单栏中的应用程序命令。这些应该如何连接到子视图中各自的功能?

示例代码

struct MyApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .commands {
            CommandGroup(after: CommandGroupPlacement.newItem) {
                Button("Do something", action: {
                    // Call the function in SubView
                })
            }
        }
    }
}

struct SubView: View {
    var body: some View { ... }
    
    func doSomething() {
        
    }
}
Run Code Online (Sandbox Code Playgroud)

我想到的想法包括:

  • 通知中心
  • 合并出版商
  • 环境对象

实现这一目标的最佳实践是什么?
谢谢,非常感谢您的帮助。

macos swift swiftui

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

标签 统计

swift ×2

ios ×1

ios13 ×1

ipad ×1

macos ×1

swiftui ×1

uisplitviewcontroller ×1