我有一个common tab bar view controller
。我已将3 other view controllers
与navigation bar
相关联,并将此3个视图控制器与主tab bar view controller
连接。所以现在我有3个标签栏具有3个视图控制器的项目。
即1.Home 2. Cart 3. feedback
这很好!!
现在我的first view controller
(这是我的第一个tab bar view controller
)有一些table view data
和detail view controller
。在detail view controller
我有一个按钮叫" Go to cart
"
所以当用户按下Go to cart
时,实际的流量是必须的。它必须移动到购物车视图控制器。现在它正在移动。
但问题是。我无法看到我的标签栏项目和其他项目。但是,如果我正常显示每个标签栏项目,它会显示所有标签栏项目。
当我从详细信息视图按钮开始时,单击我的Cart
标签栏视图控制器。然后没有显示标签栏项目。
我做了所有这些就像演示原型一样。就像我从按钮拖动到购物车标签栏视图控制器导航栏。
但它没有显示标签栏为什么。请帮助我。我没有任何解决方案的单一解决方案。我使用swift 2.2。
感谢。
更新:
所以我需要对此类代码进行编码对吗?但我不知道如何处理此代码:
let barViewControllers = sender.destinationViewController as! UITabBarController
let nav = barViewControllers.viewControllers![1] as! UINavigationController
let destinationViewController = nav.topViewController as! CartVC
但我在第一行遇到了崩溃:
fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)
请帮帮我
答案 0 :(得分:5)
这是与你的故事板类似的故事板。
现在从按钮&#34中删除segue;转到购物车"这类似于"显示第二个标签"我的故事板中的按钮
而是按如下方式向其提供行动,
@IBAction func showSecondTab(sender: AnyObject) {
let navController = self.tabBarController?.viewControllers![1] as! UINavigationController
///secondviewcontroller in your case is cart
let secondViewController = navController.viewControllers[0] as! SecondViewController
//set values you want to pass
//lets say I want to pass name to secondVC
secondViewController.name = "ABCD"
self.tabBarController?.selectedIndex = 1
}
您可以在viewDidLoad of secondVC(CartVC)中打印和检查值。