我在项目中运行了CollectionView,并使用自定义segue将collectionViewController连接到另一个tableview,如下所示。
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
selectedMenuItem = indexPath.row
//Present new view controller
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
var destViewController : UINavigationController
switch (indexPath.row) {
case 0:
destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("NewTableView") as UINavigationController
break
default:
destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("NewTableView") as UINavigationController
break
}
self.presentViewController(destViewController, animated: true, completion: nil)
}
上面的代码成功填充了我的NewTableview,但tableview完全没有导航栏。
到目前为止我的尝试如下......
我将新的navigationController嵌入到collectionView结果中保持不变。
我将新的navigationController嵌入到NewTableView结果中保持不变。
我尝试使用自定义导航按钮操作方法解开segue方法。所以我将导航栏项目和按钮插入到视图和方法工作,但当导航栏按钮按下它时,它工作扼杀它带我到我的主要集合查看控制器,这是什么我what.but我有另一个后退按钮出现在集合视图rowindex项目名称上。当我按下按钮,它带我回到NewTableView它像循环通过。
我不知道我错过了什么(任何委托方法)。我注意到从底部加载动画的newTableView数据......
我想知道有没有办法以编程方式使用后退按钮行为...
先谢谢.....
答案 0 :(得分:1)
您必须实例化导航控制器,而不是故事板中的实际视图控制器。因此,不是实例化NewTableView
(您想要嵌入在导航控制器中的视图控制器),而是应该为UINavigationController
添加一个标识符,以便实例化它而不是视图控制器本身。
想象一下,你重用了不需要导航控制器作为其根的NewTableView
控制器,iOS会如何意识到这一点?因此,为您的托管UINavigationController
添加一个标识符并实例化该标识符。导航控制器对rootViewController
具有根依赖性,默认情况下会显示,因此您只需显示UINavigationController
,NewTableView
控制器将根据其具有的依赖关系显示使用导航控制器。