ios - 将 UITabBarController 与 UINavigationController 结合使用 - Swift 3

标签 ios swift uinavigationcontroller uitabbarcontroller uistoryboard

我正在制作一个需要使用 UITabBarControllerUINavigationController 的应用程序。我在 Storyboard中做了以下流程。

See image

现在第一个问题是苹果是否接受这一点,因为对此的讨论太多了。

另一个值得关注的问题是,是否有可能消除任何 UINavigationController 并仍然获得相同的应用程序流程?所需的主要内容是在选项卡的所有子选项卡上具有相同的选项卡栏和导航栏。需要注意的一点是,如果我删除第二个 UINavigationController,那么我的应用程序会在单击后退按钮时直接从子选项卡导航到主视图 Controller 。

几个小时以来我一直坚持这个问题。我是 iOS 应用程序开发新手,从未将任何应用程序上传到应用程序商店。任何帮助都将非常有值(value)。

编辑:

我放置了第二个导航 Controller ,如答案所示 - see this flow ,但是因为我在 HomeViewController 之前有一个导航 Controller ,所以我在顶部得到一个导航栏,然后在下面得到一些空白空间(完全等于顶部导航栏),然后在运行时得到页面内容。有什么解决办法吗?

最佳答案

是的,Apple 可以接受。

但是 View 层次结构未正确管理。在您的情况下,选项卡栏将是第二个导航 Controller 的 Root View Controller 。

此外,您推送的选项卡和子选项卡将成为第二个导航 Controller 的一部分。

这就是您返回主视图 Controller 的原因。

最好将导航 Controller 保留在每个选项卡上以管理其子选项卡层次结构。

您可以从主视图 Controller 中呈现选项卡栏 Controller 或 setviewcontroller。

关于ios - 将 UITabBarController 与 UINavigationController 结合使用 - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41567013/

相关文章:

ios - Vimeo API - Not Acceptable 内容类型 : text/plain

ios - 在 Storyboard中传递值

ios - 带有 UIActivity 指示器的 UIAlert View - 仅显示事件一次

ios - Couchbase lite ios 检索文件

ios - iOS 中的静态/固定导航栏

ios - 显示 UIImagePickerController 时更新导航栏背景

ios - 如何在新设备中以编程方式禁用触觉振动

ios - DisclosureIndicator 不检测触摸

swift - 如何在 swift 4 中锚定到 navigationController

ios - 如何知道前台的应用程序名称