繁体   English   中英

如何通过单击按钮功能快速调用标签栏视图控制器

[英]how to call tab bar view controller by click button function in swift

我有一个common tab bar view controller 。我已经将3 other view controllersnavigation bar连接起来,并将这3个视图控制器与主tab bar view controller 。所以现在我有3个标签栏项目和3个视图控制器。

即1. 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 ,它必须移动到Go to cart视图控制器。

但是问题是。我看不到我的标签栏项目和其他项目。但是,如果我正常浏览每个标签栏项目,它会显示所有标签栏项目。

当我从“详细信息”视图按钮转到“ Cart标签栏视图控制器时。然后没有任何标签栏项显示。

我像演示原型一样完成了所有操作,就像我从按钮拖到购物车标签栏视图控制器导航栏一样。

但是它没有显示标签栏为什么。请帮帮我。我没有任何单一的解决方案来解决这个问题。我使用的是Swift 2.2。

谢谢。

在此处输入图片说明

更新 :

所以我需要编写类似Right ?.的代码,但是我不知道如何处理此代码:

 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) 

请帮帮我

在此处输入图片说明

这是与您相似的情节提要。

现在,从“转到购物车”按钮中删除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
    }

您可以在secondVC(CartVC)的viewDidLoad中打印和检查值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM