簡體   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