【问题标题】:How to show containerview in viewcontroller in swift如何在视图控制器中快速显示容器视图
【发布时间】:2021-10-06 05:33:08
【问题描述】:

我需要在 viewcontroller 中显示 containerview,所以我采用了一个 viewcontroller 并进行了设计,并且我将下面的一个 containerview 放到了按钮视图中

给定containerview 约束:在按钮视图下方

  top = buttonview.bottom 10, leading, trailing, bottom = 0

有两个按钮用绿线表示..最初我在带有红色按钮的“viewproposalvc”中..如果我点击灰色按钮,那么我需要显示容器视图

这里是viewproposalvc 代码:

 class ViewProposalVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
var postId: Int?

@IBOutlet weak var containerView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    updateNavigationBar(with: "View Proposal")
    containerView.isHidden = true
}

@IBAction func grayBtn(_ sender: Any) {

    containerView.isHidden = false

 let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "ContainerVC") as? ContainerVC
  vc.serviceId = self.viewproposalData?.result?.posted_services?.id
  self.navigationController?.pushViewController(vc!, animated: true)

}

@IBAction func redBtn(_ sender: Any) {
    containerView.isHidden = true
    postedServicesCall()
}
}

这是 containervc 代码:

class ContainerVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
override func viewDidLoad() {
    super.viewDidLoad()
}
}

但是这里的 containervc 没有出现在按钮视图的下方.. 它出现在单独的视图控制器中,为什么?

容器vc的o/p:我不想要单独的视图控制器..我需要containervc在下面显示viewproposalvc的按钮视图

我第一次使用容器视图,请帮忙

【问题讨论】:

    标签: swift button containers viewcontroller


    【解决方案1】:

    原因是因为你在打电话

     self.navigationController?.pushViewController(vc!, animated: true)
    

    ContainerView 只是一个带有嵌入式 segue 的通用 UIView,它由托管 VC 的 viewDidLoad 触发。如果您需要对该 VC 进行额外设置,我建议您在 ViewProposalVC 上创建一个 var 并从那里进行所需的更改。

    如

    class ViewProposalVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
    var postId: Int?
    
    @IBOutlet weak var containerView: UIView!
    @IBOutlet weak var secondaryController: UIViewController!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        updateNavigationBar(with: "View Proposal")
        containerView.isHidden = true
    }
    
    @IBAction func grayBtn(_ sender: Any) {
    
        containerView.isHidden = false
        self.secondaryController.serviceId = self.viewproposalData?.result?.posted_services?.id
    
    }
    

    【讨论】:

    • 这是secondaryController outlet
    • @swift 您的嵌入式 VC 我猜在您的情况下看起来像 ServiceVC,它是您图像中的嵌入式 segue,尽管看起来您正在尝试推动 ContainerVC,但我不确定。您的 containerView 只有一个嵌入到视图控制器的 segue。这就是视图呈现为视图的内容。
    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 2023-04-11
    • 2018-01-30
    • 1970-01-01
    • 2020-11-11
    • 2023-03-17
    • 2018-05-04
    • 1970-01-01
    相关资源
    最近更新 更多