gpt4 book ai didi

ios - 主 - 详细项目未按预期工作

转载 作者:行者123 更新时间:2023-11-30 12:56:56 31 4
gpt4 key购买 nike

使用 xcode 中的默认项目作为主从应用程序,如果我在折叠委托(delegate)中放置 print 调试语句,当我旋转设备时它似乎永远不会被触发(事实上我永远无法触发它)。

我编辑的代码位于 AppDelegate.swift 中,如下所示

func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController:UIViewController, onto primaryViewController:UIViewController) -> Bool {

print("XXXXXXX")

guard let secondaryAsNavController = secondaryViewController as? UINavigationController else { return false }
guard let topAsDetailController = secondaryAsNavController.topViewController as? DetailViewController else { return false }
if topAsDetailController.detailItem == nil {
// Return true to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.
return true
}
return false
}

正如您所看到的,委托(delegate)已根据默认项目正确设置:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem
splitViewController.delegate = self
return true
}

与默认项目相比唯一发生的变化是我添加的 print("XXXXXXX") 行。

据我所知,当它折叠分割 View 时(即由于从横向旋转到纵向),它应该调用此委托(delegate)方法来确定要使用哪个详细 View ...但是它从不调用该委托(delegate)方法。

我只是不明白这是如何工作的还是默认项目本身已损坏?

我的最终目标是,如果详细 View 的某个变量设置为 nil,主视图(左侧)在折叠时将成为主视图。我想触发这个(和其他委托(delegate)方法)是实现这一目标的第一阶段。

最佳答案

在 iPad 上分屏多任务处理期间或在 iPhone 上使用分屏 View Controller 时发生尺寸类更改期间,会调用有关折叠/展开/分离的委托(delegate)方法。

隐藏/显示主视图 Controller 是分割 View Controller 的 displayMode 更改的结果,您可以在 splitViewController:willChangeToDisplayMode: 委托(delegate)方法中对此使用react。

关于ios - 主 - 详细项目未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309537/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com