【发布时间】:2016-05-30 01:23:03
【问题描述】:
当我推送到标签栏控制器时,我正在从集合视图单元格传递数据。
我有一个导航控制器,我将一个 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]
我将 TabBarController 子类化为 photoData 变量。所以所有子视图控制器都工作得很好。
但我想做的是如果 photo2 为 nil,则删除 tabbarcontroller 的第三个视图控制器。我从另一个帖子中得到了这个代码。问题是 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 是通过 storyboard 开发的,我没有在 appdelegate 中设置它。
最后,我希望标签栏按钮的数量以及视图控制器的数量是动态的。
谢谢
【问题讨论】:
-
你是如何在 storyboard 中设置 tabor 控制器的,请添加截图