Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift-在tableviewcell中设置故事板_Ios_Swift_Uitableview - Fatal编程技术网

Ios swift-在tableviewcell中设置故事板

Ios swift-在tableviewcell中设置故事板,ios,swift,uitableview,Ios,Swift,Uitableview,我正在尝试开发一个显示命令的TableViewController。表中的每个单元格都是一个collectionView,但我想知道是否可以通过编程实例化故事板,并将初始控制器(collectionViewController)传递给UITableViewCell中的collectionView 问题是:我可以在tableViewCell中放置一个故事板,这样我就可以在该单元格中导航并做一些事情吗 解决方案 override func tableView(_ tableView: UITab

我正在尝试开发一个显示命令的
TableViewController
。表中的每个单元格都是一个
collectionView
,但我想知道是否可以通过编程实例化故事板,并将初始控制器(
collectionViewController
)传递给
UITableViewCell
中的
collectionView

问题是:我可以在
tableViewCell
中放置一个故事板,这样我就可以在该单元格中导航并做一些事情吗

解决方案

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let st = UIStoryboard(name: "Storyboard", bundle: nil)
    let vc = st.instantiateInitialViewController() as! UINavigationController

    self.addChildViewController(vc)
    vc.view.frame = CGRect(x:0, y:0,width: cell.contentView.frame.size.width, height: 40);
    cell.contentView.addSubview((vc.view)!)
    vc.didMove(toParentViewController: self)

    return cell
}

使用
情节提要
是一个自定义情节提要,navigationController作为其第一个控制器

您可以在任何
UIView
中打开
InstanceViewController
,如果您想
UITableCell
在其
contentView
中打开

let vc = self.storyboard.instantiateViewController(withIdentifier: "someViewController")
 self.addChildViewController(vc)
    vc.view.frame = CGRectMake(0, 0, cell.contentView.frame.size.width, self.container.frame.size.height);
    cell.contentView.addSubview(vc.view)
    vc.didMoveToParentViewController(self)

我希望这将帮助您

您可以在任何
UIView
中打开
UITableCell
,如果您想
实例化在其
contentView
中打开的UITableCell

let vc = self.storyboard.instantiateViewController(withIdentifier: "someViewController")
 self.addChildViewController(vc)
    vc.view.frame = CGRectMake(0, 0, cell.contentView.frame.size.width, self.container.frame.size.height);
    cell.contentView.addSubview(vc.view)
    vc.didMoveToParentViewController(self)

我希望这将对您有所帮助

谢谢,这在语法上做了一些更改后效果很好,我在
vc
中添加了一个按钮,因此当我单击它时,它应该导航到一个新的控制器,确实如此,但它在主视图中显示了新控制器,而不是在表格中。只需使用NavigationController不persent
navigator推送ViewController即可。推送ViewController(ViewController,动画:true)
即可,请确保您的控制器已连接到情节提要中的navigationController访问此按钮以推送视图,我希望这将对您有所帮助。是的,当我将导航控制器作为自定义情节提要中的第一个控制器嵌入时,它起到了作用谢谢,这在语法上做了一些更改后效果很好,我在
vc
中添加了一个按钮,因此当我点击它时,它应该导航到一个新的控制器,但它在主视图中显示了新的控制器,而不是在表格中。只需使用NavigationController不persent
navigator按下ViewController。按下ViewController(ViewController,动画:true)
即可工作,请确保您的控制器已连接到情节提要中的navigationController访问此按钮以推送视图,我希望这将对您有所帮助。是的,当我将导航控制器作为自定义情节提要中的第一个控制器嵌入时,它起到了作用