当我推送到标签栏控制器时,我正在从集合视图单元格传递数据。
我有一个导航控制器,我将一个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按钮的数量,因此视图控制器的数量是动态的。
由于
答案 0 :(得分:1)
确定发现问题...当我做self.tabbarcontroller时返回nil自定义Tabbarcontroller ... self已经是tabbarcontroller ...所以我只是使用了self.viewcontrollers工作代码。
Console.In.ReadLine