【问题标题】:Swift Reference to Outlet in subclassSwift 引用子类中的 Outlet
【发布时间】:2016-04-17 01:30:35
【问题描述】:

我定义了一个连接到情节提要的UITableViewController,如下所示:

class systemwhereFilterCtrl: UIViewController, UITableViewDataSource, UITableViewDelegate  {

        @IBOutlet var mtableView: UITableView!

然后我将该类用作超类:

class mychild : systemwhereFilterCtrl  {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

当我以mychild 作为控制器启动视图并调试到systemwhereFilterCtrl 时,mtableViewnil

为什么超类中的表视图没有初始化?

澄清:当用作超类时,nil 来自systemwhereFilterCtrl

【问题讨论】:

    标签: ios swift subclass superclass


    【解决方案1】:

    您可以使用类的self 直接访问它。同样,

    class mychild : systemwhereFilterCtrl  {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            self.mtableView.delegate = self
        }
    }
    

    希望这会有所帮助!

    【讨论】:

    • 这不是我想要的。我只希望将 tableview 加载到带有 Controller mychild 的 UIViewcontroller
    • self.mtableView 也将为零
    【解决方案2】:

    在情节提要中,您的视图是否设置为使用视图控制器 mychild?您是否也将情节提要中的表格视图连接到该视图控制器?

    【讨论】:

    • 如果您提出问题,请选择评论,因为这不是答案!
    • 我只连接在系统whereFilterCtrl
    【解决方案3】:

    试试这个:

    override func viewDidLoad() {
    //...
    self.mTableView = UITableView()
    let tableView = self.mTableView
    //...
    }
    

    【讨论】:

    • 嗨 niklas,不想初始化我想从超类重用的 tableview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2015-03-02
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多