从UITableViewCell中的UICollectionViewCell推送到导航控制器

时间:2017-06-27 08:17:03

标签: ios swift3

嗨,大家好,请帮忙

我没有使用界面构建器。

AppDelegate

...
tabBarController.viewControllers = [tabOne, tabTwo, tabThree, tabFour]
window?.rootViewController = UINavigationController(rootViewController: tabBarController)
...
tabOne中的

UIViewController,懒惰加载UITableView自定义单元格,在该单元格行中我懒加载UICollectionView

我需要推进navigationController一些viewController

enter image description here

由于

3 个答案:

答案 0 :(得分:0)

请将tabBarController作为rootViewController

window

然后为viewController的4 tabOnetabTwotabThreetabFourtabbarController)创建4个navigationControllers。 像这些代码一样:

let viewControllers = [UINavigationController(rootViewController: tabOne), 
                       UINavigationController(rootViewController: tabTwo),
                       UINavigationController(rootViewController: tabThree),
                       UINavigationController(rootViewController: tabFour)]
tabBarController.viewControllers = viewControllers
window?.rootViewController = tabBarController

TabbarControllercontainerViewController,所以:

  • 您需要为4个标签创建4 navigationController,因为它们具有特定的流程。
  • 作为您的代码,tabOne.navigationViewControllernil,因此您push其他viewcontrollernavigationController不属于tabOne而无法tabBarController },它属于classmethod

答案 1 :(得分:0)

  1. 你必须从Collection视图单元格到控制器或类(包含UICollectionView,我认为在你的案例表视图单元格的.m文件中)进行回调。
  2. 然后在包含主表视图的控制器上回调。
  3. 现在,您位于选项卡的根视图控制器上。
  4. 从此处推送导航控制器(如果您已有任何导航控制器)
  5. 你的案子:

      

    TabBarViewController - > RootViewController(四个选项卡中的一个) - >   TableView - > TableViewCell - > UICollectionView - > UICollectionViewCell

    在RootViewController上进行回调然后你可以做任何事情。 记住你应该有导航控制器来推动另一个控制器。

答案 2 :(得分:0)

我找到解决方案。 在ViewControllers的超类中,创建推送到导航的函数,并从View(Cell)需要委托self,并调用该函数。感谢所有试图帮助的人