呈现小viewController

Posted

技术标签:

【中文标题】呈现小viewController【英文标题】:Present small viewController 【发布时间】:2017-03-21 07:33:14 【问题描述】:

问题状态:我有两个 viewController

    parentViewController (375 * 667) childViewController (300 * 667)

我想在 Axis (75 * 0) 处显示 childViewController,如下所示

childViewController 显示在这个 IBAction 上

@IBAction func btnShowVC(_ sender: UIButton) 
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let newVC = storyboard.instantiateViewController(withIdentifier: "cvc") as? childViewController
    self.present(newVC!, animated: true, completion: nil)

但它会像自己一样伸展

谁能帮我解决这个问题? 谢谢

【问题讨论】:

我认为使用简单的子视图会更好,如果你想使用 viewcontroller 则可以尝试搜索 popover 演示 【参考方案1】:

你可以这样试试。

let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let newVC = storyboard.instantiateViewController(withIdentifier: "ChildViewController") as? ChildViewController
            view.addSubview((newVC?.view)!)
        newVC?.view.frame = CGRect(x:75,y:0,width:view.frame.size.width-75,height:view.frame.size.height)
        newVC?.view.autoresizingMask = \[.flexibleWidth, .flexibleHeight\]


        newVC?.didMove(toParentViewController: self)

【讨论】:

如果你想添加子控制器然后点击子按钮。 这个想法是正确的,但代码不是。您缺少 addChildViewController 调用。【参考方案2】:

您在哪里设置 ViewController 的框架?如果您使用自动布局,则需要设置约束以使 ViewController 看起来像您想要的那样。如果您想以编程方式执行此操作,您可以在某处设置框架,例如在您上面发布的代码中,您可以这样做:

@IBAction func btnShowVC(_ sender: UIButton) 
   let storyboard = UIStoryboard(name: "Main", bundle: nil)
   let newVC = storyboard.instantiateViewController(withIdentifier: "cvc") as? childViewController
   newVc.view.frame = CGRect(x: 75, y: 0, width: 300, height: 667)
   self.present(newVC!, animated: true, completion: nil)

【讨论】:

它给出了这个错误:'childViewController?'类型的值没有成员“框架” 对不起,我编辑了我的答案,我忘了在通话中添加视图。【参考方案3】:

通过设置preferredContentSize属性可以解决你的问题,请试试下面的代码sn-p

newVC?.preferredContentSize = CGSize(width: 300, height: 667)

【讨论】:

以上是关于呈现小viewController的主要内容,如果未能解决你的问题,请参考以下文章

呈现和关闭模式小部件流的正确方法是啥?

呈现小viewController

Flipswitch小部件呈现为外部面板小部件中的下拉列表

遍历列表以在 Flutter 中呈现多个小部件?

bqplot:ipython小部件未呈现

单击小部件时如何呈现祝酒词?