gpt4 book ai didi

ios - 详细说明 UISplitViewController 中的 UINavigationController 问题

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:17 26 4
gpt4 key购买 nike

我有当前的 UISplitViewController 设置:

UISplitViewController,包含 UITableViewController 的主 UINavigationController 和包含 UITabBarController 的细节 Controller 。

代码:

    // Create split view controller
let splitViewController = UISplitViewController()
let masterViewController = UINavigationController(rootViewController: UITableViewController())
masterViewController.topViewController?.title = "Master"

// Create tab bar controller
let tabBarController = UITabBarController()

// Setup view controllers
var viewControllers = [UIViewController]()
for i in Range(start: 0, end: 4) {
let vc = UIViewController()
vc.view.backgroundColor = UIColor.whiteColor()
vc.title = "View Controller \(i+1)"
let navigationController = UINavigationController(rootViewController: vc)
viewControllers.append(navigationController)
}

tabBarController.viewControllers = viewControllers
splitViewController.viewControllers = [masterViewController, tabBarController]

在横向 iPhone 6S Plus 上产生以下结果:

Landscape UISplitViewController

问题:

旋转到纵向模式后,详细 View Controller 中的 UINavigationController 被主 UINavigationController 替换,而不是使用详细 View Controller 中的导航 Controller 。

Split issue

这显然是预期的行为,但我想使用详细 View Controller 中的 UINavigationController 并且主视图 Controller 仍然有一个后退按钮。您可以查看 Facebook Messenger 应用程序以了解我在说什么。

最佳答案

这个问题与您试图在导航 Controller 中嵌入标签栏 Controller 并使其成为 Split View Controller 的详细 View Controller 这一事实有关。

选项卡栏 Controller 希望更改所选选项卡的导航项,但您的层次结构与其期望的相反。

虽然选项卡栏 Controller 能够在未折叠的详细导航 Controller 上显示选定选项卡的导航项,但一旦折叠,事情就会崩溃,因为选项卡栏 Controller 没有意识到它已被推送到 View Controller 上主导航 Controller 的堆栈。它在那个时候更新了错误的导航栏。

SDK 本身不支持特定的自适应 UI 层次结构。您可以提交功能请求,或者看看其他开发人员是否有代码来解决 Split View Controller 委托(delegate)如何折叠嵌入式选项卡栏 Controller 的问题。

关于ios - 详细说明 UISplitViewController 中的 UINavigationController 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467049/

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