当视图控制器嵌入到导航控制器中时,以模态方式呈现选项卡栏视图?
Present a Tab Bar View Modally when View Controller is embedded in a Navigation Controller?
我的故事板是这样安排的。
红色:连接到...的选项卡栏控制器
橙色:嵌入的导航控制器...
绿色:视图控制器
我想让我的中间选项卡视图(绿色)以模态方式呈现,有点像 reddit 应用程序使用中间 'Post to Reddit' 按钮的方式。当此 Middle View 被取消时,将返回到之前打开的原始选项卡。如何做到这一点?
一种方法...
为您的第二个标签 UINavigationController
提供 StoryboardID - 例如“createItemsNavController” - 然后在您的自定义标签栏控制器 class.
中实现 shouldSelect
如果选择了第二个选项卡(选项卡,像所有数组一样,是基于零的),实例化您的“createItemsNavController”并呈现它,为[返回false
=12=]:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
guard let indexOfTab = viewControllers?.firstIndex(of: viewController) else {
return true
}
if indexOfTab == 1 {
if let vc = storyboard?.instantiateViewController(withIdentifier: "createItemsNavController") as? UINavigationController {
present(vc, animated: true, completion: nil)
}
return false
}
return true
}
如果你要走那条路,你也可以(这可能是个好主意)用空白视图控制器替换故事板中的 Tab 连接...因为你可能想避免加载它通过选项卡栏控制器,即使您从未允许该选项卡被激活。
附带说明:可能 是一个非常令人困惑的用户体验。用户(和 Apple)喜欢符合通用界面操作的应用程序。由于用户熟悉选项卡栏,选择选项卡按钮会切换到该选项卡,因此以这种方式更改功能可能不受欢迎。
当然是你的应用程序,你的 设计选择...
我的故事板是这样安排的。
红色:连接到...的选项卡栏控制器
橙色:嵌入的导航控制器...
绿色:视图控制器
我想让我的中间选项卡视图(绿色)以模态方式呈现,有点像 reddit 应用程序使用中间 'Post to Reddit' 按钮的方式。当此 Middle View 被取消时,将返回到之前打开的原始选项卡。如何做到这一点?
一种方法...
为您的第二个标签 UINavigationController
提供 StoryboardID - 例如“createItemsNavController” - 然后在您的自定义标签栏控制器 class.
shouldSelect
如果选择了第二个选项卡(选项卡,像所有数组一样,是基于零的),实例化您的“createItemsNavController”并呈现它,为[返回false
=12=]:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
guard let indexOfTab = viewControllers?.firstIndex(of: viewController) else {
return true
}
if indexOfTab == 1 {
if let vc = storyboard?.instantiateViewController(withIdentifier: "createItemsNavController") as? UINavigationController {
present(vc, animated: true, completion: nil)
}
return false
}
return true
}
如果你要走那条路,你也可以(这可能是个好主意)用空白视图控制器替换故事板中的 Tab 连接...因为你可能想避免加载它通过选项卡栏控制器,即使您从未允许该选项卡被激活。
附带说明:可能 是一个非常令人困惑的用户体验。用户(和 Apple)喜欢符合通用界面操作的应用程序。由于用户熟悉选项卡栏,选择选项卡按钮会切换到该选项卡,因此以这种方式更改功能可能不受欢迎。
当然是你的应用程序,你的 设计选择...