swift UITabBarController push 到另一个 UITabBarController 无法通过popViewController返回第一个UITabBarController,如何才能正确的返回第一个UITabBarController
时间: 2023-09-25 22:10:11 浏览: 49
在使用 `UITabBarController` 嵌套 `UINavigationController` 进行页面跳转时,使用 `push` 方法会将新的 `UINavigationController` 压入栈中,导致在返回时无法直接使用 `popViewController` 返回到上一级 `UITabBarController`。
为了正确返回第一个 `UITabBarController`,可以使用以下两种方式:
1. 使用 `popToRootViewController` 方法返回根视图控制器,即第一个 `UITabBarController`
```swift
// 在第二个 UITabBarController 中返回第一个 UITabBarController
self.navigationController?.popToRootViewController(animated: true)
```
2. 使用 `selectedIndex` 属性直接切换到第一个 `UITabBarController`
```swift
// 在第二个 UITabBarController 中返回第一个 UITabBarController
self.tabBarController?.selectedIndex = 0
```
以上两种方式都可以确保正确返回第一个 `UITabBarController`,具体使用哪种方式可以根据具体情况选择。
相关问题
UITabBarController
UITabBarController是一个用于管理多个子视图控制器的控制器。每个视图控制器都有一个tabBarController属性,通过它可以访问所在的UITabBarController,而且对于UITabBarController的直接子视图,其tabBarController属性相当于它的父视图parentViewController。[1]
UITabBarController有一个代理协议,其中包含两个方法。第一个方法是tabBarController:didSelectViewController:,当切换子控制器时调用,可以用于切换控制器时准备界面数据。第二个方法是tabBarController:shouldSelectViewController:,用于设置子控制器能否被选中。[2]
当往UITabBarController添加子控制器时,标签栏就会有序地自动生成对应的UITabBarButton对象。有多少个子控制器,标签栏就有多少个UITabBarButton对象。但是当子控制器的数量超过5个时,标签栏上的第五个UITabBarButton对象就会显示成"More"类型的按钮。[3]
uitabbarcontroller
UITabBarController是一个iOS界面控制器,它允许用户通过标签栏在不同的视图控制器之间进行切换。它通常用于应用程序的主界面,其中每个标签代表不同的功能或视图。UITabBarController可以很容易地创建和配置,使得开发人员可以快速构建具有多个视图的应用程序。