我有2个独立的TableViewControllers。在一个特定的实例中,我希望能够加载一个ViewController,它将SegmentedControl放在NavigationController中......然后它将加载相应的TableViewController。
目前我有SegmentedControl只是pushishing正确的TableViewController,如果我手动启动推送它工作正常。但是如果我尝试在ViewDidAppear之前的任何时候进行推送,那么推送的TableViewController将不会显示任何内容。但是它会将事情描述为正常。
需要注意的是,2个TableViewConrollers都不同,我不能只使用一个Controller而只是切换dataSource。
有什么建议吗?
答案 0 :(得分:1)
您可能希望拥有一个包含两个表控制器的视图控制器,而不是将表视图控制器推送到导航控制器。然后,将其中一个表视图添加为视图控制器视图的子视图。即切换分段控制器时,您可以执行以下操作:
[self.tableController1.view removeFromSuperview];
[self.view addSubview self.tableConttroller2.view];
您可能还需要向表控制器发送相应的view[Will/Did][Appear/Disappear]
消息,以确保它们已正确初始化。
答案 1 :(得分:1)
我实际上为我的问题找到了更好的解决方案,所以如果有人有兴趣......
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
[viewController viewWillAppear:animated];
}
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
[viewController viewDidAppear:animated];
}
Bam,你在UINavigationController> viewController中得到了一个UINavigationController