试图删除TabBarController项,但TabBar控制器返回nil

时间:2016-02-18 02:55:13

标签: swift uitabbarcontroller

当我推送到标签栏控制器时,我正在从集合视图单元格传递数据。

我有一个导航控制器,我将一个segue推到tabbarcontroller。所以TabBarController在导航控制器中。

此代码的数据传递效果很好,这是我准备进行的。

let indexPaths = self.collectionView!.indexPathsForSelectedItems()!
        let indexPath = indexPaths[0] as NSIndexPath
        let row = indexPath.row
        let tabar = segue.destinationViewController as! ResultsDetailViewController
        tabar.photoData = photoDataStore[row]

我使用photoData变量将TabBarController子类化。因此,所有子视图控制器都运行良好。

但我想要做的是如果photo2为nil,则删除tabbarcontroller的第3个视图控制器。我从另一篇文章中得到了这段代码。问题是self.tabbarcontroller返回nil。无法弄清楚原因?

    if let tabBarController = self.tabBarController {
        let indexToRemove = 2
        if indexToRemove < tabBarController.viewControllers?.count {
            var viewControllers = tabBarController.viewControllers
            viewControllers?.removeAtIndex(indexToRemove)
            tabBarController.viewControllers = viewControllers
        }
    }

由于tabbarcontroller是通过故事板开发的,所以我没有在appdelegate中进行设置。

最后,我想要tabbar按钮的数量,因此视图控制器的数量是动态的。

由于

1 个答案:

答案 0 :(得分:1)

确定发现问题...当我做self.tabbarcontroller时返回nil自定义Tabbarcontroller ... self已经是tabbarcontroller ...所以我只是使用了self.viewcontrollers工作代码。

Console.In.ReadLine