代码之家  ›  专栏  ›  技术社区  ›  Adam

如何在ContainerView中更改嵌入TableveIw中的变量?迅捷

  •  0
  • Adam  · 技术社区  · 6 年前
    class MyView:UIViewController{
    
    
             override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
                print(segue.destination)
                let distinationVC = segue.destination as? MyTableController
                distinationVC?.topConstaints.constant = 0
    
    
             }
    }
    class MyTableController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
        @IBOutlet weak var topConstaints: NSLayoutConstraint!
    
    }
    

    返回

     print(segue.destination)
    
    <myApp. MyTableController:0 x>
    

    但在

    distinationVC?.topConstaints.constant = 0
    
    Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
    

    我做错什么了吗?

    我不知道怎么修这个

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tj3n    6 年前

    访问 topConstaints 在里面 prepare(for segue:) 无法工作,因为尚未创建控制器视图。

    要么创建一个 CGFloat 变量在 MyTableController 然后改变你的 顶层构造 在里面 viewDidLoad 或呼叫 let _ = distinationVC.view 刚好在…之后 let distinationVC = .. 触发distinationvc loadView .