sách gpt4 ai đã đi

Dự án Master-Detail không hoạt động như mong đợi

In lại 作者:行者123 更新时间:2023-11-30 12:56:56 31 4
mua khóa gpt4 Nike

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

我编辑的代码位于 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.
trả về đúng
}
trả về sai
}

正如您所看到的,委托(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
trả về đúng
}

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

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

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

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

1 Câu trả lời

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

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

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

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com