嗨,大家好,请帮忙
我没有使用界面构建器。
在AppDelegate
:
...
tabBarController.viewControllers = [tabOne, tabTwo, tabThree, tabFour]
window?.rootViewController = UINavigationController(rootViewController: tabBarController)
...
tabOne中的是UIViewController
,懒惰加载UITableView
自定义单元格,在该单元格行中我懒加载UICollectionView
。
我需要推进navigationController
一些viewController
?
由于
答案 0 :(得分:0)
请将tabBarController
作为rootViewController
window
然后为viewController
的4 tabOne
(tabTwo
,tabThree
,tabFour
,tabbarController
)创建4个navigationControllers。
像这些代码一样:
let viewControllers = [UINavigationController(rootViewController: tabOne),
UINavigationController(rootViewController: tabTwo),
UINavigationController(rootViewController: tabThree),
UINavigationController(rootViewController: tabFour)]
tabBarController.viewControllers = viewControllers
window?.rootViewController = tabBarController
TabbarController
是containerViewController
,所以:
navigationController
,因为它们具有特定的流程。tabOne.navigationViewController
为nil
,因此您push
其他viewcontroller
因navigationController
不属于tabOne
而无法tabBarController
},它属于classmethod
。答案 1 :(得分:0)
你的案子:
TabBarViewController - > RootViewController(四个选项卡中的一个) - > TableView - > TableViewCell - > UICollectionView - > UICollectionViewCell
在RootViewController上进行回调然后你可以做任何事情。 记住你应该有导航控制器来推动另一个控制器。
答案 2 :(得分:0)
我找到解决方案。 在ViewControllers的超类中,创建推送到导航的函数,并从View(Cell)需要委托self,并调用该函数。感谢所有试图帮助的人